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
@@ -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 InputSplunkSearchConnection(BaseModel):
23
27
  pipeline: Optional[str] = None
24
28
 
25
29
 
26
- class InputSplunkSearchMode(str, Enum):
30
+ class InputSplunkSearchMode(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 InputSplunkSearchCompression(str, Enum):
39
+ class InputSplunkSearchCompression(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 InputSplunkSearchPqControlsTypedDict(TypedDict):
49
+ pass
50
+
51
+
52
+ class InputSplunkSearchPqControls(BaseModel):
53
+ pass
54
+
55
+
40
56
  class InputSplunkSearchPqTypedDict(TypedDict):
41
57
  mode: NotRequired[InputSplunkSearchMode]
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 InputSplunkSearchPqTypedDict(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[InputSplunkSearchCompression]
54
70
  r"""Codec to use to compress the persisted data"""
71
+ pq_controls: NotRequired[InputSplunkSearchPqControlsTypedDict]
55
72
 
56
73
 
57
74
  class InputSplunkSearchPq(BaseModel):
58
- mode: Optional[InputSplunkSearchMode] = InputSplunkSearchMode.ALWAYS
75
+ mode: Annotated[
76
+ Optional[InputSplunkSearchMode], PlainValidator(validate_open_enum(False))
77
+ ] = InputSplunkSearchMode.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,11 +98,36 @@ class InputSplunkSearchPq(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[InputSplunkSearchCompression] = InputSplunkSearchCompression.NONE
101
+ compress: Annotated[
102
+ Optional[InputSplunkSearchCompression],
103
+ PlainValidator(validate_open_enum(False)),
104
+ ] = InputSplunkSearchCompression.NONE
83
105
  r"""Codec to use to compress the persisted data"""
84
106
 
107
+ pq_controls: Annotated[
108
+ Optional[InputSplunkSearchPqControls], pydantic.Field(alias="pqControls")
109
+ ] = None
85
110
 
86
- class OutputMode(str, Enum):
111
+ @field_serializer("mode")
112
+ def serialize_mode(self, value):
113
+ if isinstance(value, str):
114
+ try:
115
+ return models.InputSplunkSearchMode(value)
116
+ except ValueError:
117
+ return value
118
+ return value
119
+
120
+ @field_serializer("compress")
121
+ def serialize_compress(self, value):
122
+ if isinstance(value, str):
123
+ try:
124
+ return models.InputSplunkSearchCompression(value)
125
+ except ValueError:
126
+ return value
127
+ return value
128
+
129
+
130
+ class OutputMode(str, Enum, metaclass=utils.OpenEnumMeta):
87
131
  r"""Format of the returned output"""
88
132
 
89
133
  CSV = "csv"
@@ -116,7 +160,7 @@ class EndpointHeader(BaseModel):
116
160
  r"""JavaScript expression to compute the header's value, normally enclosed in backticks (e.g., `${earliest}`). If a constant, use single quotes (e.g., 'earliest'). Values without delimiters (e.g., earliest) are evaluated as strings."""
117
161
 
118
162
 
119
- class InputSplunkSearchLogLevel(str, Enum):
163
+ class InputSplunkSearchLogLevel(str, Enum, metaclass=utils.OpenEnumMeta):
120
164
  r"""Collector runtime log level (verbosity)"""
121
165
 
122
166
  ERROR = "error"
@@ -138,11 +182,14 @@ class InputSplunkSearchMetadatum(BaseModel):
138
182
  r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
139
183
 
140
184
 
141
- class InputSplunkSearchRetryType(str, Enum):
185
+ class InputSplunkSearchRetryType(str, Enum, metaclass=utils.OpenEnumMeta):
142
186
  r"""The algorithm to use when performing HTTP retries"""
143
187
 
188
+ # Disabled
144
189
  NONE = "none"
190
+ # Backoff
145
191
  BACKOFF = "backoff"
192
+ # Static
146
193
  STATIC = "static"
147
194
 
148
195
 
@@ -166,7 +213,9 @@ class InputSplunkSearchRetryRulesTypedDict(TypedDict):
166
213
 
167
214
 
168
215
  class InputSplunkSearchRetryRules(BaseModel):
169
- type: Optional[InputSplunkSearchRetryType] = InputSplunkSearchRetryType.BACKOFF
216
+ type: Annotated[
217
+ Optional[InputSplunkSearchRetryType], PlainValidator(validate_open_enum(False))
218
+ ] = InputSplunkSearchRetryType.BACKOFF
170
219
  r"""The algorithm to use when performing HTTP retries"""
171
220
 
172
221
  interval: Optional[float] = 1000
@@ -196,8 +245,17 @@ class InputSplunkSearchRetryRules(BaseModel):
196
245
  ] = False
197
246
  r"""Retry request when a connection reset (ECONNRESET) error occurs"""
198
247
 
248
+ @field_serializer("type")
249
+ def serialize_type(self, value):
250
+ if isinstance(value, str):
251
+ try:
252
+ return models.InputSplunkSearchRetryType(value)
253
+ except ValueError:
254
+ return value
255
+ return value
256
+
199
257
 
200
- class InputSplunkSearchAuthenticationType(str, Enum):
258
+ class InputSplunkSearchAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
201
259
  r"""Splunk Search authentication type"""
202
260
 
203
261
  NONE = "none"
@@ -382,9 +440,10 @@ class InputSplunkSearch(BaseModel):
382
440
  endpoint: Optional[str] = "/services/search/v2/jobs/export"
383
441
  r"""REST API used to create a search"""
384
442
 
385
- output_mode: Annotated[Optional[OutputMode], pydantic.Field(alias="outputMode")] = (
386
- OutputMode.JSON
387
- )
443
+ output_mode: Annotated[
444
+ Annotated[Optional[OutputMode], PlainValidator(validate_open_enum(False))],
445
+ pydantic.Field(alias="outputMode"),
446
+ ] = OutputMode.JSON
388
447
  r"""Format of the returned output"""
389
448
 
390
449
  endpoint_params: Annotated[
@@ -398,7 +457,11 @@ class InputSplunkSearch(BaseModel):
398
457
  r"""Optional request headers to send to the endpoint"""
399
458
 
400
459
  log_level: Annotated[
401
- Optional[InputSplunkSearchLogLevel], pydantic.Field(alias="logLevel")
460
+ Annotated[
461
+ Optional[InputSplunkSearchLogLevel],
462
+ PlainValidator(validate_open_enum(False)),
463
+ ],
464
+ pydantic.Field(alias="logLevel"),
402
465
  ] = None
403
466
  r"""Collector runtime log level (verbosity)"""
404
467
 
@@ -459,7 +522,11 @@ class InputSplunkSearch(BaseModel):
459
522
  r"""How long (in milliseconds) the Event Breaker will wait for new data to be sent to a specific channel before flushing the data stream out, as is, to the Pipelines"""
460
523
 
461
524
  auth_type: Annotated[
462
- Optional[InputSplunkSearchAuthenticationType], pydantic.Field(alias="authType")
525
+ Annotated[
526
+ Optional[InputSplunkSearchAuthenticationType],
527
+ PlainValidator(validate_open_enum(False)),
528
+ ],
529
+ pydantic.Field(alias="authType"),
463
530
  ] = InputSplunkSearchAuthenticationType.BASIC
464
531
  r"""Splunk Search authentication type"""
465
532
 
@@ -516,3 +583,30 @@ class InputSplunkSearch(BaseModel):
516
583
  pydantic.Field(alias="oauthHeaders"),
517
584
  ] = None
518
585
  r"""Additional headers to send in the OAuth login request. @{product} will automatically add the content-type header 'application/x-www-form-urlencoded' when sending this request."""
586
+
587
+ @field_serializer("output_mode")
588
+ def serialize_output_mode(self, value):
589
+ if isinstance(value, str):
590
+ try:
591
+ return models.OutputMode(value)
592
+ except ValueError:
593
+ return value
594
+ return value
595
+
596
+ @field_serializer("log_level")
597
+ def serialize_log_level(self, value):
598
+ if isinstance(value, str):
599
+ try:
600
+ return models.InputSplunkSearchLogLevel(value)
601
+ except ValueError:
602
+ return value
603
+ return value
604
+
605
+ @field_serializer("auth_type")
606
+ def serialize_auth_type(self, value):
607
+ if isinstance(value, str):
608
+ try:
609
+ return models.InputSplunkSearchAuthenticationType(value)
610
+ except ValueError:
611
+ return value
612
+ 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 InputSqsConnection(BaseModel):
23
27
  pipeline: Optional[str] = None
24
28
 
25
29
 
26
- class InputSqsMode(str, Enum):
30
+ class InputSqsMode(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 InputSqsCompression(str, Enum):
39
+ class InputSqsCompression(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 InputSqsPqControlsTypedDict(TypedDict):
49
+ pass
50
+
51
+
52
+ class InputSqsPqControls(BaseModel):
53
+ pass
54
+
55
+
40
56
  class InputSqsPqTypedDict(TypedDict):
41
57
  mode: NotRequired[InputSqsMode]
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 InputSqsPqTypedDict(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[InputSqsCompression]
54
70
  r"""Codec to use to compress the persisted data"""
71
+ pq_controls: NotRequired[InputSqsPqControlsTypedDict]
55
72
 
56
73
 
57
74
  class InputSqsPq(BaseModel):
58
- mode: Optional[InputSqsMode] = InputSqsMode.ALWAYS
75
+ mode: Annotated[
76
+ Optional[InputSqsMode], PlainValidator(validate_open_enum(False))
77
+ ] = InputSqsMode.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,26 +98,55 @@ class InputSqsPq(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[InputSqsCompression] = InputSqsCompression.NONE
101
+ compress: Annotated[
102
+ Optional[InputSqsCompression], PlainValidator(validate_open_enum(False))
103
+ ] = InputSqsCompression.NONE
83
104
  r"""Codec to use to compress the persisted data"""
84
105
 
106
+ pq_controls: Annotated[
107
+ Optional[InputSqsPqControls], pydantic.Field(alias="pqControls")
108
+ ] = None
85
109
 
86
- class InputSqsQueueType(str, Enum):
110
+ @field_serializer("mode")
111
+ def serialize_mode(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.InputSqsMode(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.InputSqsCompression(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
128
+
129
+ class InputSqsQueueType(str, Enum, metaclass=utils.OpenEnumMeta):
87
130
  r"""The queue type used (or created)"""
88
131
 
132
+ # Standard
89
133
  STANDARD = "standard"
134
+ # FIFO
90
135
  FIFO = "fifo"
91
136
 
92
137
 
93
- class InputSqsAuthenticationMethod(str, Enum):
138
+ class InputSqsAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
94
139
  r"""AWS authentication method. Choose Auto to use IAM roles."""
95
140
 
141
+ # Auto
96
142
  AUTO = "auto"
143
+ # Manual
97
144
  MANUAL = "manual"
145
+ # Secret Key pair
98
146
  SECRET = "secret"
99
147
 
100
148
 
101
- class InputSqsSignatureVersion(str, Enum):
149
+ class InputSqsSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
102
150
  r"""Signature version to use for signing SQS requests"""
103
151
 
104
152
  V2 = "v2"
@@ -122,6 +170,8 @@ class InputSqsTypedDict(TypedDict):
122
170
  type: InputSqsType
123
171
  queue_name: str
124
172
  r"""The name, URL, or ARN of the SQS queue to read events from. When a non-AWS URL is specified, format must be: '{url}/myQueueName'. Example: 'https://host:port/myQueueName'. Value must be a JavaScript expression (which can evaluate to a constant value), enclosed in quotes or backticks. Can only be evaluated at init time. Example referencing a Global Variable: `https://host:port/myQueue-${C.vars.myVar}`."""
173
+ queue_type: InputSqsQueueType
174
+ r"""The queue type used (or created)"""
125
175
  id: NotRequired[str]
126
176
  r"""Unique ID for this input"""
127
177
  disabled: NotRequired[bool]
@@ -138,8 +188,6 @@ class InputSqsTypedDict(TypedDict):
138
188
  connections: NotRequired[List[InputSqsConnectionTypedDict]]
139
189
  r"""Direct connections to Destinations, and optionally via a Pipeline or a Pack"""
140
190
  pq: NotRequired[InputSqsPqTypedDict]
141
- queue_type: NotRequired[InputSqsQueueType]
142
- r"""The queue type used (or created)"""
143
191
  aws_account_id: NotRequired[str]
144
192
  r"""SQS queue owner's AWS account ID. Leave empty if SQS queue is in same AWS account."""
145
193
  create_queue: NotRequired[bool]
@@ -187,6 +235,12 @@ class InputSqs(BaseModel):
187
235
  queue_name: Annotated[str, pydantic.Field(alias="queueName")]
188
236
  r"""The name, URL, or ARN of the SQS queue to read events from. When a non-AWS URL is specified, format must be: '{url}/myQueueName'. Example: 'https://host:port/myQueueName'. Value must be a JavaScript expression (which can evaluate to a constant value), enclosed in quotes or backticks. Can only be evaluated at init time. Example referencing a Global Variable: `https://host:port/myQueue-${C.vars.myVar}`."""
189
237
 
238
+ queue_type: Annotated[
239
+ Annotated[InputSqsQueueType, PlainValidator(validate_open_enum(False))],
240
+ pydantic.Field(alias="queueType"),
241
+ ]
242
+ r"""The queue type used (or created)"""
243
+
190
244
  id: Optional[str] = None
191
245
  r"""Unique ID for this input"""
192
246
 
@@ -214,11 +268,6 @@ class InputSqs(BaseModel):
214
268
 
215
269
  pq: Optional[InputSqsPq] = None
216
270
 
217
- queue_type: Annotated[
218
- Optional[InputSqsQueueType], pydantic.Field(alias="queueType")
219
- ] = InputSqsQueueType.STANDARD
220
- r"""The queue type used (or created)"""
221
-
222
271
  aws_account_id: Annotated[Optional[str], pydantic.Field(alias="awsAccountId")] = (
223
272
  None
224
273
  )
@@ -228,7 +277,10 @@ class InputSqs(BaseModel):
228
277
  r"""Create queue if it does not exist"""
229
278
 
230
279
  aws_authentication_method: Annotated[
231
- Optional[InputSqsAuthenticationMethod],
280
+ Annotated[
281
+ Optional[InputSqsAuthenticationMethod],
282
+ PlainValidator(validate_open_enum(False)),
283
+ ],
232
284
  pydantic.Field(alias="awsAuthenticationMethod"),
233
285
  ] = InputSqsAuthenticationMethod.AUTO
234
286
  r"""AWS authentication method. Choose Auto to use IAM roles."""
@@ -244,7 +296,11 @@ class InputSqs(BaseModel):
244
296
  r"""SQS service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to SQS-compatible endpoint."""
245
297
 
246
298
  signature_version: Annotated[
247
- Optional[InputSqsSignatureVersion], pydantic.Field(alias="signatureVersion")
299
+ Annotated[
300
+ Optional[InputSqsSignatureVersion],
301
+ PlainValidator(validate_open_enum(False)),
302
+ ],
303
+ pydantic.Field(alias="signatureVersion"),
248
304
  ] = InputSqsSignatureVersion.V4
249
305
  r"""Signature version to use for signing SQS requests"""
250
306
 
@@ -301,3 +357,30 @@ class InputSqs(BaseModel):
301
357
 
302
358
  num_receivers: Annotated[Optional[float], pydantic.Field(alias="numReceivers")] = 3
303
359
  r"""How many receiver processes to run. The higher the number, the better the throughput - at the expense of CPU overhead."""
360
+
361
+ @field_serializer("queue_type")
362
+ def serialize_queue_type(self, value):
363
+ if isinstance(value, str):
364
+ try:
365
+ return models.InputSqsQueueType(value)
366
+ except ValueError:
367
+ return value
368
+ return value
369
+
370
+ @field_serializer("aws_authentication_method")
371
+ def serialize_aws_authentication_method(self, value):
372
+ if isinstance(value, str):
373
+ try:
374
+ return models.InputSqsAuthenticationMethod(value)
375
+ except ValueError:
376
+ return value
377
+ return value
378
+
379
+ @field_serializer("signature_version")
380
+ def serialize_signature_version(self, value):
381
+ if isinstance(value, str):
382
+ try:
383
+ return models.InputSqsSignatureVersion(value)
384
+ except ValueError:
385
+ return value
386
+ return value