cribl-control-plane 0.2.1rc7__py3-none-any.whl → 0.3.0a1__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 (179) hide show
  1. cribl_control_plane/_version.py +4 -4
  2. cribl_control_plane/errors/__init__.py +5 -8
  3. cribl_control_plane/errors/{healthserverstatus_error.py → healthstatus_error.py} +9 -10
  4. cribl_control_plane/groups_sdk.py +28 -52
  5. cribl_control_plane/health.py +16 -22
  6. cribl_control_plane/models/__init__.py +54 -217
  7. cribl_control_plane/models/appmode.py +14 -0
  8. cribl_control_plane/models/authtoken.py +1 -5
  9. cribl_control_plane/models/cacheconnection.py +0 -20
  10. cribl_control_plane/models/configgroup.py +7 -55
  11. cribl_control_plane/models/configgroupcloud.py +1 -11
  12. cribl_control_plane/models/createconfiggroupbyproductop.py +5 -17
  13. cribl_control_plane/models/createroutesappendbyidop.py +2 -2
  14. cribl_control_plane/models/createversionundoop.py +3 -3
  15. cribl_control_plane/models/cribllakedataset.py +1 -11
  16. cribl_control_plane/models/cribllakedatasetupdate.py +1 -11
  17. cribl_control_plane/models/datasetmetadata.py +1 -11
  18. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +0 -11
  19. cribl_control_plane/models/deleteoutputpqbyidop.py +2 -2
  20. cribl_control_plane/models/distributedsummary.py +0 -6
  21. cribl_control_plane/models/error.py +16 -0
  22. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +0 -20
  23. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +0 -20
  24. cribl_control_plane/models/getconfiggroupbyproductandidop.py +0 -11
  25. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +0 -11
  26. cribl_control_plane/models/gethealthinfoop.py +17 -0
  27. cribl_control_plane/models/getsummaryop.py +0 -11
  28. cribl_control_plane/models/hbcriblinfo.py +3 -24
  29. cribl_control_plane/models/{healthserverstatus.py → healthstatus.py} +8 -27
  30. cribl_control_plane/models/heartbeatmetadata.py +0 -3
  31. cribl_control_plane/models/input.py +78 -80
  32. cribl_control_plane/models/inputappscope.py +17 -80
  33. cribl_control_plane/models/inputazureblob.py +1 -33
  34. cribl_control_plane/models/inputcollection.py +1 -24
  35. cribl_control_plane/models/inputconfluentcloud.py +18 -195
  36. cribl_control_plane/models/inputcribl.py +1 -24
  37. cribl_control_plane/models/inputcriblhttp.py +17 -62
  38. cribl_control_plane/models/inputcribllakehttp.py +17 -62
  39. cribl_control_plane/models/inputcriblmetrics.py +1 -24
  40. cribl_control_plane/models/inputcribltcp.py +17 -62
  41. cribl_control_plane/models/inputcrowdstrike.py +1 -54
  42. cribl_control_plane/models/inputdatadogagent.py +17 -62
  43. cribl_control_plane/models/inputdatagen.py +1 -24
  44. cribl_control_plane/models/inputedgeprometheus.py +34 -147
  45. cribl_control_plane/models/inputelastic.py +27 -119
  46. cribl_control_plane/models/inputeventhub.py +1 -182
  47. cribl_control_plane/models/inputexec.py +1 -33
  48. cribl_control_plane/models/inputfile.py +3 -42
  49. cribl_control_plane/models/inputfirehose.py +17 -62
  50. cribl_control_plane/models/inputgooglepubsub.py +1 -36
  51. cribl_control_plane/models/inputgrafana.py +32 -157
  52. cribl_control_plane/models/inputhttp.py +17 -62
  53. cribl_control_plane/models/inputhttpraw.py +17 -62
  54. cribl_control_plane/models/inputjournalfiles.py +1 -24
  55. cribl_control_plane/models/inputkafka.py +17 -189
  56. cribl_control_plane/models/inputkinesis.py +1 -80
  57. cribl_control_plane/models/inputkubeevents.py +1 -24
  58. cribl_control_plane/models/inputkubelogs.py +1 -33
  59. cribl_control_plane/models/inputkubemetrics.py +1 -33
  60. cribl_control_plane/models/inputloki.py +17 -71
  61. cribl_control_plane/models/inputmetrics.py +17 -62
  62. cribl_control_plane/models/inputmodeldriventelemetry.py +17 -62
  63. cribl_control_plane/models/inputmsk.py +18 -81
  64. cribl_control_plane/models/inputnetflow.py +1 -24
  65. cribl_control_plane/models/inputoffice365mgmt.py +1 -67
  66. cribl_control_plane/models/inputoffice365msgtrace.py +1 -67
  67. cribl_control_plane/models/inputoffice365service.py +1 -67
  68. cribl_control_plane/models/inputopentelemetry.py +16 -92
  69. cribl_control_plane/models/inputprometheus.py +34 -138
  70. cribl_control_plane/models/inputprometheusrw.py +17 -71
  71. cribl_control_plane/models/inputrawudp.py +1 -24
  72. cribl_control_plane/models/inputs3.py +1 -45
  73. cribl_control_plane/models/inputs3inventory.py +1 -54
  74. cribl_control_plane/models/inputsecuritylake.py +1 -54
  75. cribl_control_plane/models/inputsnmp.py +1 -40
  76. cribl_control_plane/models/inputsplunk.py +17 -85
  77. cribl_control_plane/models/inputsplunkhec.py +16 -70
  78. cribl_control_plane/models/inputsplunksearch.py +1 -63
  79. cribl_control_plane/models/inputsqs.py +1 -56
  80. cribl_control_plane/models/inputsyslog.py +32 -121
  81. cribl_control_plane/models/inputsystemmetrics.py +9 -142
  82. cribl_control_plane/models/inputsystemstate.py +1 -33
  83. cribl_control_plane/models/inputtcp.py +17 -81
  84. cribl_control_plane/models/inputtcpjson.py +17 -71
  85. cribl_control_plane/models/inputwef.py +1 -71
  86. cribl_control_plane/models/inputwindowsmetrics.py +9 -129
  87. cribl_control_plane/models/inputwineventlogs.py +1 -60
  88. cribl_control_plane/models/inputwiz.py +1 -45
  89. cribl_control_plane/models/inputwizwebhook.py +17 -62
  90. cribl_control_plane/models/inputzscalerhec.py +16 -70
  91. cribl_control_plane/models/jobinfo.py +1 -4
  92. cribl_control_plane/models/jobstatus.py +3 -34
  93. cribl_control_plane/models/listconfiggroupbyproductop.py +0 -11
  94. cribl_control_plane/models/logininfo.py +3 -3
  95. cribl_control_plane/models/masterworkerentry.py +1 -11
  96. cribl_control_plane/models/nodeprovidedinfo.py +1 -11
  97. cribl_control_plane/models/nodeupgradestatus.py +0 -38
  98. cribl_control_plane/models/output.py +88 -93
  99. cribl_control_plane/models/outputazureblob.py +1 -110
  100. cribl_control_plane/models/outputazuredataexplorer.py +87 -452
  101. cribl_control_plane/models/outputazureeventhub.py +19 -281
  102. cribl_control_plane/models/outputazurelogs.py +19 -115
  103. cribl_control_plane/models/outputchronicle.py +19 -115
  104. cribl_control_plane/models/outputclickhouse.py +19 -155
  105. cribl_control_plane/models/outputcloudwatch.py +19 -106
  106. cribl_control_plane/models/outputconfluentcloud.py +38 -311
  107. cribl_control_plane/models/outputcriblhttp.py +19 -135
  108. cribl_control_plane/models/outputcribllake.py +1 -97
  109. cribl_control_plane/models/outputcribltcp.py +19 -132
  110. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +20 -129
  111. cribl_control_plane/models/outputdatadog.py +19 -159
  112. cribl_control_plane/models/outputdataset.py +19 -143
  113. cribl_control_plane/models/outputdiskspool.py +1 -11
  114. cribl_control_plane/models/outputdls3.py +1 -152
  115. cribl_control_plane/models/outputdynatracehttp.py +19 -160
  116. cribl_control_plane/models/outputdynatraceotlp.py +19 -160
  117. cribl_control_plane/models/outputelastic.py +19 -163
  118. cribl_control_plane/models/outputelasticcloud.py +19 -140
  119. cribl_control_plane/models/outputexabeam.py +1 -61
  120. cribl_control_plane/models/outputfilesystem.py +1 -87
  121. cribl_control_plane/models/outputgooglechronicle.py +20 -166
  122. cribl_control_plane/models/outputgooglecloudlogging.py +20 -131
  123. cribl_control_plane/models/outputgooglecloudstorage.py +1 -136
  124. cribl_control_plane/models/outputgooglepubsub.py +19 -106
  125. cribl_control_plane/models/outputgrafanacloud.py +37 -288
  126. cribl_control_plane/models/outputgraphite.py +19 -105
  127. cribl_control_plane/models/outputhoneycomb.py +19 -115
  128. cribl_control_plane/models/outputhumiohec.py +19 -126
  129. cribl_control_plane/models/outputinfluxdb.py +19 -130
  130. cribl_control_plane/models/outputkafka.py +34 -302
  131. cribl_control_plane/models/outputkinesis.py +19 -133
  132. cribl_control_plane/models/outputloki.py +17 -129
  133. cribl_control_plane/models/outputminio.py +1 -145
  134. cribl_control_plane/models/outputmsk.py +34 -193
  135. cribl_control_plane/models/outputnewrelic.py +19 -136
  136. cribl_control_plane/models/outputnewrelicevents.py +20 -128
  137. cribl_control_plane/models/outputopentelemetry.py +19 -178
  138. cribl_control_plane/models/outputprometheus.py +19 -115
  139. cribl_control_plane/models/outputring.py +1 -31
  140. cribl_control_plane/models/outputs3.py +1 -152
  141. cribl_control_plane/models/outputsecuritylake.py +1 -114
  142. cribl_control_plane/models/outputsentinel.py +19 -135
  143. cribl_control_plane/models/outputsentineloneaisiem.py +20 -134
  144. cribl_control_plane/models/outputservicenow.py +19 -168
  145. cribl_control_plane/models/outputsignalfx.py +19 -115
  146. cribl_control_plane/models/outputsns.py +17 -113
  147. cribl_control_plane/models/outputsplunk.py +19 -153
  148. cribl_control_plane/models/outputsplunkhec.py +19 -208
  149. cribl_control_plane/models/outputsplunklb.py +19 -182
  150. cribl_control_plane/models/outputsqs.py +17 -124
  151. cribl_control_plane/models/outputstatsd.py +19 -105
  152. cribl_control_plane/models/outputstatsdext.py +19 -105
  153. cribl_control_plane/models/outputsumologic.py +19 -117
  154. cribl_control_plane/models/outputsyslog.py +96 -259
  155. cribl_control_plane/models/outputtcpjson.py +19 -141
  156. cribl_control_plane/models/outputwavefront.py +19 -115
  157. cribl_control_plane/models/outputwebhook.py +19 -161
  158. cribl_control_plane/models/outputxsiam.py +17 -113
  159. cribl_control_plane/models/packinfo.py +5 -8
  160. cribl_control_plane/models/packinstallinfo.py +5 -8
  161. cribl_control_plane/models/resourcepolicy.py +0 -11
  162. cribl_control_plane/models/{uploadpackresponse.py → routecloneconf.py} +4 -4
  163. cribl_control_plane/models/routeconf.py +4 -3
  164. cribl_control_plane/models/runnablejobcollection.py +9 -72
  165. cribl_control_plane/models/runnablejobexecutor.py +9 -32
  166. cribl_control_plane/models/runnablejobscheduledsearch.py +9 -23
  167. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +0 -11
  168. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +0 -11
  169. cribl_control_plane/packs.py +7 -202
  170. cribl_control_plane/routes_sdk.py +6 -6
  171. cribl_control_plane/tokens.py +15 -23
  172. {cribl_control_plane-0.2.1rc7.dist-info → cribl_control_plane-0.3.0a1.dist-info}/METADATA +9 -50
  173. cribl_control_plane-0.3.0a1.dist-info/RECORD +330 -0
  174. cribl_control_plane/models/groupcreaterequest.py +0 -171
  175. cribl_control_plane/models/outpostnodeinfo.py +0 -16
  176. cribl_control_plane/models/outputdatabricks.py +0 -482
  177. cribl_control_plane/models/updatepacksop.py +0 -25
  178. cribl_control_plane-0.2.1rc7.dist-info/RECORD +0 -331
  179. {cribl_control_plane-0.2.1rc7.dist-info → cribl_control_plane-0.3.0a1.dist-info}/WHEEL +0 -0
@@ -1,12 +1,11 @@
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
+ from cribl_control_plane import utils
5
5
  from cribl_control_plane.types import BaseModel
6
6
  from cribl_control_plane.utils import validate_open_enum
7
7
  from enum import Enum
8
8
  import pydantic
9
- from pydantic import field_serializer
10
9
  from pydantic.functional_validators import PlainValidator
11
10
  from typing import List, Optional
12
11
  from typing_extensions import Annotated, NotRequired, TypedDict
@@ -19,9 +18,7 @@ class OutputSyslogType(str, Enum):
19
18
  class OutputSyslogProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
20
19
  r"""The network protocol to use for sending out syslog messages"""
21
20
 
22
- # TCP
23
21
  TCP = "tcp"
24
- # UDP
25
22
  UDP = "udp"
26
23
 
27
24
 
@@ -55,90 +52,30 @@ class Facility(int, Enum, metaclass=utils.OpenEnumMeta):
55
52
  class OutputSyslogSeverity(int, Enum, metaclass=utils.OpenEnumMeta):
56
53
  r"""Default value for message severity. Will be overwritten by value of __severity if set. Defaults to notice."""
57
54
 
58
- # emergency
59
55
  ZERO = 0
60
- # alert
61
56
  ONE = 1
62
- # critical
63
57
  TWO = 2
64
- # error
65
58
  THREE = 3
66
- # warning
67
59
  FOUR = 4
68
- # notice
69
60
  FIVE = 5
70
- # info
71
61
  SIX = 6
72
- # debug
73
62
  SEVEN = 7
74
63
 
75
64
 
76
65
  class OutputSyslogMessageFormat(str, Enum, metaclass=utils.OpenEnumMeta):
77
66
  r"""The syslog message format depending on the receiver's support"""
78
67
 
79
- # RFC3164
80
68
  RFC3164 = "rfc3164"
81
- # RFC5424
82
69
  RFC5424 = "rfc5424"
83
70
 
84
71
 
85
72
  class TimestampFormat(str, Enum, metaclass=utils.OpenEnumMeta):
86
73
  r"""Timestamp format to use when serializing event's time field"""
87
74
 
88
- # Syslog
89
75
  SYSLOG = "syslog"
90
- # ISO8601
91
76
  ISO8601 = "iso8601"
92
77
 
93
78
 
94
- class OutputSyslogTLS(str, Enum, metaclass=utils.OpenEnumMeta):
95
- r"""Whether to inherit TLS configs from group setting or disable TLS"""
96
-
97
- INHERIT = "inherit"
98
- OFF = "off"
99
-
100
-
101
- class OutputSyslogHostTypedDict(TypedDict):
102
- host: str
103
- r"""The hostname of the receiver"""
104
- port: float
105
- r"""The port to connect to on the provided host"""
106
- tls: NotRequired[OutputSyslogTLS]
107
- r"""Whether to inherit TLS configs from group setting or disable TLS"""
108
- servername: NotRequired[str]
109
- r"""Servername to use if establishing a TLS connection. If not specified, defaults to connection host (if not an IP); otherwise, uses the global TLS settings."""
110
- weight: NotRequired[float]
111
- r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
112
-
113
-
114
- class OutputSyslogHost(BaseModel):
115
- host: str
116
- r"""The hostname of the receiver"""
117
-
118
- port: float
119
- r"""The port to connect to on the provided host"""
120
-
121
- tls: Annotated[
122
- Optional[OutputSyslogTLS], PlainValidator(validate_open_enum(False))
123
- ] = OutputSyslogTLS.INHERIT
124
- r"""Whether to inherit TLS configs from group setting or disable TLS"""
125
-
126
- servername: Optional[str] = None
127
- r"""Servername to use if establishing a TLS connection. If not specified, defaults to connection host (if not an IP); otherwise, uses the global TLS settings."""
128
-
129
- weight: Optional[float] = 1
130
- r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
131
-
132
- @field_serializer("tls")
133
- def serialize_tls(self, value):
134
- if isinstance(value, str):
135
- try:
136
- return models.OutputSyslogTLS(value)
137
- except ValueError:
138
- return value
139
- return value
140
-
141
-
142
79
  class OutputSyslogMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
143
80
  TL_SV1 = "TLSv1"
144
81
  TL_SV1_1 = "TLSv1.1"
@@ -221,65 +158,37 @@ class OutputSyslogTLSSettingsClientSide(BaseModel):
221
158
  pydantic.Field(alias="maxVersion"),
222
159
  ] = None
223
160
 
224
- @field_serializer("min_version")
225
- def serialize_min_version(self, value):
226
- if isinstance(value, str):
227
- try:
228
- return models.OutputSyslogMinimumTLSVersion(value)
229
- except ValueError:
230
- return value
231
- return value
232
-
233
- @field_serializer("max_version")
234
- def serialize_max_version(self, value):
235
- if isinstance(value, str):
236
- try:
237
- return models.OutputSyslogMaximumTLSVersion(value)
238
- except ValueError:
239
- return value
240
- return value
241
-
242
161
 
243
162
  class OutputSyslogBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
244
163
  r"""How to handle events when all receivers are exerting backpressure"""
245
164
 
246
- # Block
247
165
  BLOCK = "block"
248
- # Drop
249
166
  DROP = "drop"
250
- # Persistent Queue
251
167
  QUEUE = "queue"
252
168
 
253
169
 
254
- class OutputSyslogMode(str, Enum, metaclass=utils.OpenEnumMeta):
255
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
256
-
257
- # Error
258
- ERROR = "error"
259
- # Backpressure
260
- ALWAYS = "always"
261
- # Always On
262
- BACKPRESSURE = "backpressure"
263
-
264
-
265
170
  class OutputSyslogCompression(str, Enum, metaclass=utils.OpenEnumMeta):
266
171
  r"""Codec to use to compress the persisted data"""
267
172
 
268
- # None
269
173
  NONE = "none"
270
- # Gzip
271
174
  GZIP = "gzip"
272
175
 
273
176
 
274
177
  class OutputSyslogQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
275
178
  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."""
276
179
 
277
- # Block
278
180
  BLOCK = "block"
279
- # Drop new data
280
181
  DROP = "drop"
281
182
 
282
183
 
184
+ class OutputSyslogMode(str, Enum, metaclass=utils.OpenEnumMeta):
185
+ 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."""
186
+
187
+ ERROR = "error"
188
+ BACKPRESSURE = "backpressure"
189
+ ALWAYS = "always"
190
+
191
+
283
192
  class OutputSyslogPqControlsTypedDict(TypedDict):
284
193
  pass
285
194
 
@@ -288,6 +197,43 @@ class OutputSyslogPqControls(BaseModel):
288
197
  pass
289
198
 
290
199
 
200
+ class OutputSyslogTLS(str, Enum):
201
+ r"""Whether to inherit TLS configs from group setting or disable TLS"""
202
+
203
+ INHERIT = "inherit"
204
+ OFF = "off"
205
+
206
+
207
+ class OutputSyslogHostTypedDict(TypedDict):
208
+ host: str
209
+ r"""The hostname of the receiver"""
210
+ port: NotRequired[float]
211
+ r"""The port to connect to on the provided host"""
212
+ tls: NotRequired[OutputSyslogTLS]
213
+ r"""Whether to inherit TLS configs from group setting or disable TLS"""
214
+ servername: NotRequired[str]
215
+ r"""Servername to use if establishing a TLS connection. If not specified, defaults to connection host (if not an IP); otherwise, uses the global TLS settings."""
216
+ weight: NotRequired[float]
217
+ r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
218
+
219
+
220
+ class OutputSyslogHost(BaseModel):
221
+ host: str
222
+ r"""The hostname of the receiver"""
223
+
224
+ port: Optional[float] = 9997
225
+ r"""The port to connect to on the provided host"""
226
+
227
+ tls: Optional[OutputSyslogTLS] = OutputSyslogTLS.INHERIT
228
+ r"""Whether to inherit TLS configs from group setting or disable TLS"""
229
+
230
+ servername: Optional[str] = None
231
+ r"""Servername to use if establishing a TLS connection. If not specified, defaults to connection host (if not an IP); otherwise, uses the global TLS settings."""
232
+
233
+ weight: Optional[float] = 1
234
+ r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
235
+
236
+
291
237
  class OutputSyslogTypedDict(TypedDict):
292
238
  type: OutputSyslogType
293
239
  id: NotRequired[str]
@@ -321,20 +267,6 @@ class OutputSyslogTypedDict(TypedDict):
321
267
  description: NotRequired[str]
322
268
  load_balanced: NotRequired[bool]
323
269
  r"""For optimal performance, enable load balancing even if you have one hostname, as it can expand to multiple IPs. If this setting is disabled, consider enabling round-robin DNS."""
324
- host: NotRequired[str]
325
- r"""The hostname of the receiver"""
326
- port: NotRequired[float]
327
- r"""The port to connect to on the provided host"""
328
- exclude_self: NotRequired[bool]
329
- r"""Exclude all IPs of the current host from the list of any resolved hostnames"""
330
- hosts: NotRequired[List[OutputSyslogHostTypedDict]]
331
- r"""Set of hosts to load-balance data to"""
332
- dns_resolve_period_sec: NotRequired[float]
333
- r"""The interval in which to re-resolve any hostnames and pick up destinations from A records"""
334
- load_balance_stats_period_sec: NotRequired[float]
335
- r"""How far back in time to keep traffic stats for load balancing purposes"""
336
- max_concurrent_senders: NotRequired[float]
337
- 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."""
338
270
  connection_timeout: NotRequired[float]
339
271
  r"""Amount of time (milliseconds) to wait for the connection to establish before retrying"""
340
272
  write_timeout: NotRequired[float]
@@ -342,20 +274,14 @@ class OutputSyslogTypedDict(TypedDict):
342
274
  tls: NotRequired[OutputSyslogTLSSettingsClientSideTypedDict]
343
275
  on_backpressure: NotRequired[OutputSyslogBackpressureBehavior]
344
276
  r"""How to handle events when all receivers are exerting backpressure"""
277
+ host: NotRequired[str]
278
+ r"""The hostname of the receiver"""
279
+ port: NotRequired[float]
280
+ r"""The port to connect to on the provided host"""
345
281
  max_record_size: NotRequired[float]
346
282
  r"""Maximum size of syslog messages. Make sure this value is less than or equal to the MTU to avoid UDP packet fragmentation."""
347
283
  udp_dns_resolve_period_sec: NotRequired[float]
348
284
  r"""How often to resolve the destination hostname to an IP address. Ignored if the destination is an IP address. A value of 0 means every message sent will incur a DNS lookup."""
349
- pq_strict_ordering: NotRequired[bool]
350
- r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
351
- pq_rate_per_sec: NotRequired[float]
352
- r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
353
- pq_mode: NotRequired[OutputSyslogMode]
354
- 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."""
355
- pq_max_buffer_size: NotRequired[float]
356
- r"""The maximum number of events to hold in memory before writing the events to disk"""
357
- pq_max_backpressure_sec: NotRequired[float]
358
- r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
359
285
  pq_max_file_size: NotRequired[str]
360
286
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
361
287
  pq_max_size: NotRequired[str]
@@ -366,7 +292,19 @@ class OutputSyslogTypedDict(TypedDict):
366
292
  r"""Codec to use to compress the persisted data"""
367
293
  pq_on_backpressure: NotRequired[OutputSyslogQueueFullBehavior]
368
294
  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."""
295
+ pq_mode: NotRequired[OutputSyslogMode]
296
+ 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."""
369
297
  pq_controls: NotRequired[OutputSyslogPqControlsTypedDict]
298
+ dns_resolve_period_sec: NotRequired[float]
299
+ r"""The interval in which to re-resolve any hostnames and pick up destinations from A records"""
300
+ load_balance_stats_period_sec: NotRequired[float]
301
+ r"""How far back in time to keep traffic stats for load balancing purposes"""
302
+ max_concurrent_senders: NotRequired[float]
303
+ 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."""
304
+ exclude_self: NotRequired[bool]
305
+ r"""Exclude all IPs of the current host from the list of any resolved hostnames"""
306
+ hosts: NotRequired[List[OutputSyslogHostTypedDict]]
307
+ r"""Set of hosts to load-balance data to."""
370
308
 
371
309
 
372
310
  class OutputSyslog(BaseModel):
@@ -444,33 +382,6 @@ class OutputSyslog(BaseModel):
444
382
  )
445
383
  r"""For optimal performance, enable load balancing even if you have one hostname, as it can expand to multiple IPs. If this setting is disabled, consider enabling round-robin DNS."""
446
384
 
447
- host: Optional[str] = None
448
- r"""The hostname of the receiver"""
449
-
450
- port: Optional[float] = None
451
- r"""The port to connect to on the provided host"""
452
-
453
- exclude_self: Annotated[Optional[bool], pydantic.Field(alias="excludeSelf")] = False
454
- r"""Exclude all IPs of the current host from the list of any resolved hostnames"""
455
-
456
- hosts: Optional[List[OutputSyslogHost]] = None
457
- r"""Set of hosts to load-balance data to"""
458
-
459
- dns_resolve_period_sec: Annotated[
460
- Optional[float], pydantic.Field(alias="dnsResolvePeriodSec")
461
- ] = 600
462
- r"""The interval in which to re-resolve any hostnames and pick up destinations from A records"""
463
-
464
- load_balance_stats_period_sec: Annotated[
465
- Optional[float], pydantic.Field(alias="loadBalanceStatsPeriodSec")
466
- ] = 300
467
- r"""How far back in time to keep traffic stats for load balancing purposes"""
468
-
469
- max_concurrent_senders: Annotated[
470
- Optional[float], pydantic.Field(alias="maxConcurrentSenders")
471
- ] = 0
472
- 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."""
473
-
474
385
  connection_timeout: Annotated[
475
386
  Optional[float], pydantic.Field(alias="connectionTimeout")
476
387
  ] = 10000
@@ -492,6 +403,12 @@ class OutputSyslog(BaseModel):
492
403
  ] = OutputSyslogBackpressureBehavior.BLOCK
493
404
  r"""How to handle events when all receivers are exerting backpressure"""
494
405
 
406
+ host: Optional[str] = None
407
+ r"""The hostname of the receiver"""
408
+
409
+ port: Optional[float] = None
410
+ r"""The port to connect to on the provided host"""
411
+
495
412
  max_record_size: Annotated[
496
413
  Optional[float], pydantic.Field(alias="maxRecordSize")
497
414
  ] = 1500
@@ -502,34 +419,6 @@ class OutputSyslog(BaseModel):
502
419
  ] = 0
503
420
  r"""How often to resolve the destination hostname to an IP address. Ignored if the destination is an IP address. A value of 0 means every message sent will incur a DNS lookup."""
504
421
 
505
- pq_strict_ordering: Annotated[
506
- Optional[bool], pydantic.Field(alias="pqStrictOrdering")
507
- ] = True
508
- r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
509
-
510
- pq_rate_per_sec: Annotated[
511
- Optional[float], pydantic.Field(alias="pqRatePerSec")
512
- ] = 0
513
- r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
514
-
515
- pq_mode: Annotated[
516
- Annotated[
517
- Optional[OutputSyslogMode], PlainValidator(validate_open_enum(False))
518
- ],
519
- pydantic.Field(alias="pqMode"),
520
- ] = OutputSyslogMode.ERROR
521
- 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."""
522
-
523
- pq_max_buffer_size: Annotated[
524
- Optional[float], pydantic.Field(alias="pqMaxBufferSize")
525
- ] = 42
526
- r"""The maximum number of events to hold in memory before writing the events to disk"""
527
-
528
- pq_max_backpressure_sec: Annotated[
529
- Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
530
- ] = 30
531
- r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
532
-
533
422
  pq_max_file_size: Annotated[
534
423
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
535
424
  ] = "1 MB"
@@ -560,87 +449,35 @@ class OutputSyslog(BaseModel):
560
449
  ] = OutputSyslogQueueFullBehavior.BLOCK
561
450
  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."""
562
451
 
452
+ pq_mode: Annotated[
453
+ Annotated[
454
+ Optional[OutputSyslogMode], PlainValidator(validate_open_enum(False))
455
+ ],
456
+ pydantic.Field(alias="pqMode"),
457
+ ] = OutputSyslogMode.ERROR
458
+ 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."""
459
+
563
460
  pq_controls: Annotated[
564
461
  Optional[OutputSyslogPqControls], pydantic.Field(alias="pqControls")
565
462
  ] = None
566
463
 
567
- @field_serializer("protocol")
568
- def serialize_protocol(self, value):
569
- if isinstance(value, str):
570
- try:
571
- return models.OutputSyslogProtocol(value)
572
- except ValueError:
573
- return value
574
- return value
575
-
576
- @field_serializer("facility")
577
- def serialize_facility(self, value):
578
- if isinstance(value, str):
579
- try:
580
- return models.Facility(value)
581
- except ValueError:
582
- return value
583
- return value
584
-
585
- @field_serializer("severity")
586
- def serialize_severity(self, value):
587
- if isinstance(value, str):
588
- try:
589
- return models.OutputSyslogSeverity(value)
590
- except ValueError:
591
- return value
592
- return value
593
-
594
- @field_serializer("message_format")
595
- def serialize_message_format(self, value):
596
- if isinstance(value, str):
597
- try:
598
- return models.OutputSyslogMessageFormat(value)
599
- except ValueError:
600
- return value
601
- return value
602
-
603
- @field_serializer("timestamp_format")
604
- def serialize_timestamp_format(self, value):
605
- if isinstance(value, str):
606
- try:
607
- return models.TimestampFormat(value)
608
- except ValueError:
609
- return value
610
- return value
611
-
612
- @field_serializer("on_backpressure")
613
- def serialize_on_backpressure(self, value):
614
- if isinstance(value, str):
615
- try:
616
- return models.OutputSyslogBackpressureBehavior(value)
617
- except ValueError:
618
- return value
619
- return value
620
-
621
- @field_serializer("pq_mode")
622
- def serialize_pq_mode(self, value):
623
- if isinstance(value, str):
624
- try:
625
- return models.OutputSyslogMode(value)
626
- except ValueError:
627
- return value
628
- return value
629
-
630
- @field_serializer("pq_compress")
631
- def serialize_pq_compress(self, value):
632
- if isinstance(value, str):
633
- try:
634
- return models.OutputSyslogCompression(value)
635
- except ValueError:
636
- return value
637
- return value
638
-
639
- @field_serializer("pq_on_backpressure")
640
- def serialize_pq_on_backpressure(self, value):
641
- if isinstance(value, str):
642
- try:
643
- return models.OutputSyslogQueueFullBehavior(value)
644
- except ValueError:
645
- return value
646
- return value
464
+ dns_resolve_period_sec: Annotated[
465
+ Optional[float], pydantic.Field(alias="dnsResolvePeriodSec")
466
+ ] = 600
467
+ r"""The interval in which to re-resolve any hostnames and pick up destinations from A records"""
468
+
469
+ load_balance_stats_period_sec: Annotated[
470
+ Optional[float], pydantic.Field(alias="loadBalanceStatsPeriodSec")
471
+ ] = 300
472
+ r"""How far back in time to keep traffic stats for load balancing purposes"""
473
+
474
+ max_concurrent_senders: Annotated[
475
+ Optional[float], pydantic.Field(alias="maxConcurrentSenders")
476
+ ] = 0
477
+ 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."""
478
+
479
+ exclude_self: Annotated[Optional[bool], pydantic.Field(alias="excludeSelf")] = False
480
+ r"""Exclude all IPs of the current host from the list of any resolved hostnames"""
481
+
482
+ hosts: Optional[List[OutputSyslogHost]] = None
483
+ r"""Set of hosts to load-balance data to."""