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
 
@@ -12,21 +16,23 @@ class OutputSplunkLbType(str, Enum):
12
16
  SPLUNK_LB = "splunk_lb"
13
17
 
14
18
 
15
- class OutputSplunkLbNestedFieldSerialization(str, Enum):
19
+ class OutputSplunkLbNestedFieldSerialization(str, Enum, metaclass=utils.OpenEnumMeta):
16
20
  r"""How to serialize nested fields into index-time fields"""
17
21
 
22
+ # JSON
18
23
  JSON = "json"
24
+ # None
19
25
  NONE = "none"
20
26
 
21
27
 
22
- class OutputSplunkLbMinimumTLSVersion(str, Enum):
28
+ class OutputSplunkLbMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
23
29
  TL_SV1 = "TLSv1"
24
30
  TL_SV1_1 = "TLSv1.1"
25
31
  TL_SV1_2 = "TLSv1.2"
26
32
  TL_SV1_3 = "TLSv1.3"
27
33
 
28
34
 
29
- class OutputSplunkLbMaximumTLSVersion(str, Enum):
35
+ class OutputSplunkLbMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
30
36
  TL_SV1 = "TLSv1"
31
37
  TL_SV1_1 = "TLSv1.1"
32
38
  TL_SV1_2 = "TLSv1.2"
@@ -86,45 +92,79 @@ class OutputSplunkLbTLSSettingsClientSide(BaseModel):
86
92
  r"""Passphrase to use to decrypt private key"""
87
93
 
88
94
  min_version: Annotated[
89
- Optional[OutputSplunkLbMinimumTLSVersion], pydantic.Field(alias="minVersion")
95
+ Annotated[
96
+ Optional[OutputSplunkLbMinimumTLSVersion],
97
+ PlainValidator(validate_open_enum(False)),
98
+ ],
99
+ pydantic.Field(alias="minVersion"),
90
100
  ] = None
91
101
 
92
102
  max_version: Annotated[
93
- Optional[OutputSplunkLbMaximumTLSVersion], pydantic.Field(alias="maxVersion")
103
+ Annotated[
104
+ Optional[OutputSplunkLbMaximumTLSVersion],
105
+ PlainValidator(validate_open_enum(False)),
106
+ ],
107
+ pydantic.Field(alias="maxVersion"),
94
108
  ] = None
95
109
 
96
-
97
- class OutputSplunkLbMaxS2SVersion(str, Enum):
110
+ @field_serializer("min_version")
111
+ def serialize_min_version(self, value):
112
+ if isinstance(value, str):
113
+ try:
114
+ return models.OutputSplunkLbMinimumTLSVersion(value)
115
+ except ValueError:
116
+ return value
117
+ return value
118
+
119
+ @field_serializer("max_version")
120
+ def serialize_max_version(self, value):
121
+ if isinstance(value, str):
122
+ try:
123
+ return models.OutputSplunkLbMaximumTLSVersion(value)
124
+ except ValueError:
125
+ return value
126
+ return value
127
+
128
+
129
+ class OutputSplunkLbMaxS2SVersion(str, Enum, metaclass=utils.OpenEnumMeta):
98
130
  r"""The highest S2S protocol version to advertise during handshake"""
99
131
 
100
132
  V3 = "v3"
101
133
  V4 = "v4"
102
134
 
103
135
 
104
- class OutputSplunkLbBackpressureBehavior(str, Enum):
136
+ class OutputSplunkLbBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
105
137
  r"""How to handle events when all receivers are exerting backpressure"""
106
138
 
139
+ # Block
107
140
  BLOCK = "block"
141
+ # Drop
108
142
  DROP = "drop"
143
+ # Persistent Queue
109
144
  QUEUE = "queue"
110
145
 
111
146
 
112
- class OutputSplunkLbAuthenticationMethod(str, Enum):
147
+ class OutputSplunkLbAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
113
148
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
114
149
 
115
150
  MANUAL = "manual"
116
151
  SECRET = "secret"
117
152
 
118
153
 
119
- class OutputSplunkLbCompressCompression(str, Enum):
154
+ class OutputSplunkLbCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
120
155
  r"""Controls whether the sender should send compressed data to the server. Select 'Disabled' to reject compressed connections or 'Always' to ignore server's configuration and send compressed data."""
121
156
 
157
+ # Disabled
122
158
  DISABLED = "disabled"
159
+ # Automatic
123
160
  AUTO = "auto"
161
+ # Always
124
162
  ALWAYS = "always"
125
163
 
126
164
 
127
- class IndexerDiscoveryConfigsAuthTokenAuthenticationMethod(str, Enum):
165
+ class IndexerDiscoveryConfigsAuthTokenAuthenticationMethod(
166
+ str, Enum, metaclass=utils.OpenEnumMeta
167
+ ):
128
168
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
129
169
 
130
170
  MANUAL = "manual"
@@ -138,13 +178,29 @@ class OutputSplunkLbAuthTokenTypedDict(TypedDict):
138
178
 
139
179
  class OutputSplunkLbAuthToken(BaseModel):
140
180
  auth_type: Annotated[
141
- Optional[IndexerDiscoveryConfigsAuthTokenAuthenticationMethod],
181
+ Annotated[
182
+ Optional[IndexerDiscoveryConfigsAuthTokenAuthenticationMethod],
183
+ PlainValidator(validate_open_enum(False)),
184
+ ],
142
185
  pydantic.Field(alias="authType"),
143
186
  ] = IndexerDiscoveryConfigsAuthTokenAuthenticationMethod.MANUAL
144
187
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
145
188
 
146
-
147
- class IndexerDiscoveryConfigsAuthenticationMethod(str, Enum):
189
+ @field_serializer("auth_type")
190
+ def serialize_auth_type(self, value):
191
+ if isinstance(value, str):
192
+ try:
193
+ return models.IndexerDiscoveryConfigsAuthTokenAuthenticationMethod(
194
+ value
195
+ )
196
+ except ValueError:
197
+ return value
198
+ return value
199
+
200
+
201
+ class IndexerDiscoveryConfigsAuthenticationMethod(
202
+ str, Enum, metaclass=utils.OpenEnumMeta
203
+ ):
148
204
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
149
205
 
150
206
  MANUAL = "manual"
@@ -197,7 +253,10 @@ class IndexerDiscoveryConfigs(BaseModel):
197
253
  r"""Tokens required to authenticate to cluster manager for indexer discovery"""
198
254
 
199
255
  auth_type: Annotated[
200
- Optional[IndexerDiscoveryConfigsAuthenticationMethod],
256
+ Annotated[
257
+ Optional[IndexerDiscoveryConfigsAuthenticationMethod],
258
+ PlainValidator(validate_open_enum(False)),
259
+ ],
201
260
  pydantic.Field(alias="authType"),
202
261
  ] = IndexerDiscoveryConfigsAuthenticationMethod.MANUAL
203
262
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
@@ -208,8 +267,17 @@ class IndexerDiscoveryConfigs(BaseModel):
208
267
  text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
209
268
  r"""Select or create a stored text secret"""
210
269
 
270
+ @field_serializer("auth_type")
271
+ def serialize_auth_type(self, value):
272
+ if isinstance(value, str):
273
+ try:
274
+ return models.IndexerDiscoveryConfigsAuthenticationMethod(value)
275
+ except ValueError:
276
+ return value
277
+ return value
278
+
211
279
 
212
- class OutputSplunkLbTLS(str, Enum):
280
+ class OutputSplunkLbTLS(str, Enum, metaclass=utils.OpenEnumMeta):
213
281
  r"""Whether to inherit TLS configs from group setting or disable TLS"""
214
282
 
215
283
  INHERIT = "inherit"
@@ -236,7 +304,9 @@ class OutputSplunkLbHost(BaseModel):
236
304
  port: Optional[float] = 9997
237
305
  r"""The port to connect to on the provided host"""
238
306
 
239
- tls: Optional[OutputSplunkLbTLS] = OutputSplunkLbTLS.INHERIT
307
+ tls: Annotated[
308
+ Optional[OutputSplunkLbTLS], PlainValidator(validate_open_enum(False))
309
+ ] = OutputSplunkLbTLS.INHERIT
240
310
  r"""Whether to inherit TLS configs from group setting or disable TLS"""
241
311
 
242
312
  servername: Optional[str] = None
@@ -245,29 +315,45 @@ class OutputSplunkLbHost(BaseModel):
245
315
  weight: Optional[float] = 1
246
316
  r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
247
317
 
318
+ @field_serializer("tls")
319
+ def serialize_tls(self, value):
320
+ if isinstance(value, str):
321
+ try:
322
+ return models.OutputSplunkLbTLS(value)
323
+ except ValueError:
324
+ return value
325
+ return value
326
+
327
+
328
+ class OutputSplunkLbMode(str, Enum, metaclass=utils.OpenEnumMeta):
329
+ 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."""
330
+
331
+ # Error
332
+ ERROR = "error"
333
+ # Backpressure
334
+ ALWAYS = "always"
335
+ # Always On
336
+ BACKPRESSURE = "backpressure"
337
+
248
338
 
249
- class OutputSplunkLbPqCompressCompression(str, Enum):
339
+ class OutputSplunkLbPqCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
250
340
  r"""Codec to use to compress the persisted data"""
251
341
 
342
+ # None
252
343
  NONE = "none"
344
+ # Gzip
253
345
  GZIP = "gzip"
254
346
 
255
347
 
256
- class OutputSplunkLbQueueFullBehavior(str, Enum):
348
+ class OutputSplunkLbQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
257
349
  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."""
258
350
 
351
+ # Block
259
352
  BLOCK = "block"
353
+ # Drop new data
260
354
  DROP = "drop"
261
355
 
262
356
 
263
- class OutputSplunkLbMode(str, Enum):
264
- 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."""
265
-
266
- ERROR = "error"
267
- BACKPRESSURE = "backpressure"
268
- ALWAYS = "always"
269
-
270
-
271
357
  class OutputSplunkLbPqControlsTypedDict(TypedDict):
272
358
  pass
273
359
 
@@ -330,6 +416,16 @@ class OutputSplunkLbTypedDict(TypedDict):
330
416
  r"""List of configurations to set up indexer discovery in Splunk Indexer clustering environment."""
331
417
  exclude_self: NotRequired[bool]
332
418
  r"""Exclude all IPs of the current host from the list of any resolved hostnames"""
419
+ pq_strict_ordering: NotRequired[bool]
420
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
421
+ pq_rate_per_sec: NotRequired[float]
422
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
423
+ pq_mode: NotRequired[OutputSplunkLbMode]
424
+ 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."""
425
+ pq_max_buffer_size: NotRequired[float]
426
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
427
+ pq_max_backpressure_sec: NotRequired[float]
428
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
333
429
  pq_max_file_size: NotRequired[str]
334
430
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
335
431
  pq_max_size: NotRequired[str]
@@ -340,8 +436,6 @@ class OutputSplunkLbTypedDict(TypedDict):
340
436
  r"""Codec to use to compress the persisted data"""
341
437
  pq_on_backpressure: NotRequired[OutputSplunkLbQueueFullBehavior]
342
438
  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."""
343
- pq_mode: NotRequired[OutputSplunkLbMode]
344
- 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."""
345
439
  pq_controls: NotRequired[OutputSplunkLbPqControlsTypedDict]
346
440
  auth_token: NotRequired[str]
347
441
  r"""Shared secret token to use when establishing a connection to a Splunk indexer."""
@@ -388,7 +482,10 @@ class OutputSplunkLb(BaseModel):
388
482
  r"""Maximum number of concurrent connections (per Worker Process). A random set of IPs will be picked on every DNS resolution period. Use 0 for unlimited."""
389
483
 
390
484
  nested_fields: Annotated[
391
- Optional[OutputSplunkLbNestedFieldSerialization],
485
+ Annotated[
486
+ Optional[OutputSplunkLbNestedFieldSerialization],
487
+ PlainValidator(validate_open_enum(False)),
488
+ ],
392
489
  pydantic.Field(alias="nestedFields"),
393
490
  ] = OutputSplunkLbNestedFieldSerialization.NONE
394
491
  r"""How to serialize nested fields into index-time fields"""
@@ -424,12 +521,19 @@ class OutputSplunkLb(BaseModel):
424
521
  r"""Use to troubleshoot issues with sending data"""
425
522
 
426
523
  max_s2_sversion: Annotated[
427
- Optional[OutputSplunkLbMaxS2SVersion], pydantic.Field(alias="maxS2Sversion")
524
+ Annotated[
525
+ Optional[OutputSplunkLbMaxS2SVersion],
526
+ PlainValidator(validate_open_enum(False)),
527
+ ],
528
+ pydantic.Field(alias="maxS2Sversion"),
428
529
  ] = OutputSplunkLbMaxS2SVersion.V3
429
530
  r"""The highest S2S protocol version to advertise during handshake"""
430
531
 
431
532
  on_backpressure: Annotated[
432
- Optional[OutputSplunkLbBackpressureBehavior],
533
+ Annotated[
534
+ Optional[OutputSplunkLbBackpressureBehavior],
535
+ PlainValidator(validate_open_enum(False)),
536
+ ],
433
537
  pydantic.Field(alias="onBackpressure"),
434
538
  ] = OutputSplunkLbBackpressureBehavior.BLOCK
435
539
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -445,7 +549,11 @@ class OutputSplunkLb(BaseModel):
445
549
  r"""How long (in milliseconds) each LB endpoint can report blocked before the Destination reports unhealthy, blocking the sender. (Grace period for fluctuations.) Use 0 to disable; max 1 minute."""
446
550
 
447
551
  auth_type: Annotated[
448
- Optional[OutputSplunkLbAuthenticationMethod], pydantic.Field(alias="authType")
552
+ Annotated[
553
+ Optional[OutputSplunkLbAuthenticationMethod],
554
+ PlainValidator(validate_open_enum(False)),
555
+ ],
556
+ pydantic.Field(alias="authType"),
449
557
  ] = OutputSplunkLbAuthenticationMethod.MANUAL
450
558
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
451
559
 
@@ -456,9 +564,10 @@ class OutputSplunkLb(BaseModel):
456
564
  ] = 1
457
565
  r"""Maximum number of times healthcheck can fail before we close connection. If set to 0 (disabled), and the connection to Splunk is forcibly closed, some data loss might occur."""
458
566
 
459
- compress: Optional[OutputSplunkLbCompressCompression] = (
460
- OutputSplunkLbCompressCompression.DISABLED
461
- )
567
+ compress: Annotated[
568
+ Optional[OutputSplunkLbCompressCompression],
569
+ PlainValidator(validate_open_enum(False)),
570
+ ] = OutputSplunkLbCompressCompression.DISABLED
462
571
  r"""Controls whether the sender should send compressed data to the server. Select 'Disabled' to reject compressed connections or 'Always' to ignore server's configuration and send compressed data."""
463
572
 
464
573
  indexer_discovery_configs: Annotated[
@@ -470,6 +579,34 @@ class OutputSplunkLb(BaseModel):
470
579
  exclude_self: Annotated[Optional[bool], pydantic.Field(alias="excludeSelf")] = False
471
580
  r"""Exclude all IPs of the current host from the list of any resolved hostnames"""
472
581
 
582
+ pq_strict_ordering: Annotated[
583
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
584
+ ] = True
585
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
586
+
587
+ pq_rate_per_sec: Annotated[
588
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
589
+ ] = 0
590
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
591
+
592
+ pq_mode: Annotated[
593
+ Annotated[
594
+ Optional[OutputSplunkLbMode], PlainValidator(validate_open_enum(False))
595
+ ],
596
+ pydantic.Field(alias="pqMode"),
597
+ ] = OutputSplunkLbMode.ERROR
598
+ 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."""
599
+
600
+ pq_max_buffer_size: Annotated[
601
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
602
+ ] = 42
603
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
604
+
605
+ pq_max_backpressure_sec: Annotated[
606
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
607
+ ] = 30
608
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
609
+
473
610
  pq_max_file_size: Annotated[
474
611
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
475
612
  ] = "1 MB"
@@ -484,22 +621,23 @@ class OutputSplunkLb(BaseModel):
484
621
  r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
485
622
 
486
623
  pq_compress: Annotated[
487
- Optional[OutputSplunkLbPqCompressCompression],
624
+ Annotated[
625
+ Optional[OutputSplunkLbPqCompressCompression],
626
+ PlainValidator(validate_open_enum(False)),
627
+ ],
488
628
  pydantic.Field(alias="pqCompress"),
489
629
  ] = OutputSplunkLbPqCompressCompression.NONE
490
630
  r"""Codec to use to compress the persisted data"""
491
631
 
492
632
  pq_on_backpressure: Annotated[
493
- Optional[OutputSplunkLbQueueFullBehavior],
633
+ Annotated[
634
+ Optional[OutputSplunkLbQueueFullBehavior],
635
+ PlainValidator(validate_open_enum(False)),
636
+ ],
494
637
  pydantic.Field(alias="pqOnBackpressure"),
495
638
  ] = OutputSplunkLbQueueFullBehavior.BLOCK
496
639
  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."""
497
640
 
498
- pq_mode: Annotated[Optional[OutputSplunkLbMode], pydantic.Field(alias="pqMode")] = (
499
- OutputSplunkLbMode.ERROR
500
- )
501
- 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."""
502
-
503
641
  pq_controls: Annotated[
504
642
  Optional[OutputSplunkLbPqControls], pydantic.Field(alias="pqControls")
505
643
  ] = None
@@ -509,3 +647,75 @@ class OutputSplunkLb(BaseModel):
509
647
 
510
648
  text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
511
649
  r"""Select or create a stored text secret"""
650
+
651
+ @field_serializer("nested_fields")
652
+ def serialize_nested_fields(self, value):
653
+ if isinstance(value, str):
654
+ try:
655
+ return models.OutputSplunkLbNestedFieldSerialization(value)
656
+ except ValueError:
657
+ return value
658
+ return value
659
+
660
+ @field_serializer("max_s2_sversion")
661
+ def serialize_max_s2_sversion(self, value):
662
+ if isinstance(value, str):
663
+ try:
664
+ return models.OutputSplunkLbMaxS2SVersion(value)
665
+ except ValueError:
666
+ return value
667
+ return value
668
+
669
+ @field_serializer("on_backpressure")
670
+ def serialize_on_backpressure(self, value):
671
+ if isinstance(value, str):
672
+ try:
673
+ return models.OutputSplunkLbBackpressureBehavior(value)
674
+ except ValueError:
675
+ return value
676
+ return value
677
+
678
+ @field_serializer("auth_type")
679
+ def serialize_auth_type(self, value):
680
+ if isinstance(value, str):
681
+ try:
682
+ return models.OutputSplunkLbAuthenticationMethod(value)
683
+ except ValueError:
684
+ return value
685
+ return value
686
+
687
+ @field_serializer("compress")
688
+ def serialize_compress(self, value):
689
+ if isinstance(value, str):
690
+ try:
691
+ return models.OutputSplunkLbCompressCompression(value)
692
+ except ValueError:
693
+ return value
694
+ return value
695
+
696
+ @field_serializer("pq_mode")
697
+ def serialize_pq_mode(self, value):
698
+ if isinstance(value, str):
699
+ try:
700
+ return models.OutputSplunkLbMode(value)
701
+ except ValueError:
702
+ return value
703
+ return value
704
+
705
+ @field_serializer("pq_compress")
706
+ def serialize_pq_compress(self, value):
707
+ if isinstance(value, str):
708
+ try:
709
+ return models.OutputSplunkLbPqCompressCompression(value)
710
+ except ValueError:
711
+ return value
712
+ return value
713
+
714
+ @field_serializer("pq_on_backpressure")
715
+ def serialize_pq_on_backpressure(self, value):
716
+ if isinstance(value, str):
717
+ try:
718
+ return models.OutputSplunkLbQueueFullBehavior(value)
719
+ except ValueError:
720
+ return value
721
+ return value