cribl-control-plane 0.3.0b3__py3-none-any.whl → 0.3.0b12__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 (158) hide show
  1. cribl_control_plane/_version.py +4 -4
  2. cribl_control_plane/groups_sdk.py +2 -2
  3. cribl_control_plane/lakedatasets.py +28 -0
  4. cribl_control_plane/models/__init__.py +124 -5
  5. cribl_control_plane/models/cacheconnection.py +20 -0
  6. cribl_control_plane/models/configgroup.py +20 -1
  7. cribl_control_plane/models/configgroupcloud.py +11 -1
  8. cribl_control_plane/models/createconfiggroupbyproductop.py +13 -2
  9. cribl_control_plane/models/cribllakedataset.py +15 -1
  10. cribl_control_plane/models/cribllakedatasetupdate.py +15 -1
  11. cribl_control_plane/models/datasetmetadata.py +11 -1
  12. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +11 -0
  13. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +20 -0
  14. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +20 -0
  15. cribl_control_plane/models/getconfiggroupbyproductandidop.py +11 -0
  16. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +11 -0
  17. cribl_control_plane/models/getsummaryop.py +11 -0
  18. cribl_control_plane/models/groupcreaterequest.py +20 -1
  19. cribl_control_plane/models/hbcriblinfo.py +11 -1
  20. cribl_control_plane/models/healthserverstatus.py +20 -1
  21. cribl_control_plane/models/input.py +15 -15
  22. cribl_control_plane/models/inputappscope.py +76 -17
  23. cribl_control_plane/models/inputazureblob.py +29 -1
  24. cribl_control_plane/models/inputcollection.py +20 -1
  25. cribl_control_plane/models/inputconfluentcloud.py +188 -1
  26. cribl_control_plane/models/inputcribl.py +20 -1
  27. cribl_control_plane/models/inputcriblhttp.py +58 -17
  28. cribl_control_plane/models/inputcribllakehttp.py +58 -17
  29. cribl_control_plane/models/inputcriblmetrics.py +20 -1
  30. cribl_control_plane/models/inputcribltcp.py +58 -17
  31. cribl_control_plane/models/inputcrowdstrike.py +47 -1
  32. cribl_control_plane/models/inputdatadogagent.py +58 -17
  33. cribl_control_plane/models/inputdatagen.py +20 -1
  34. cribl_control_plane/models/inputedgeprometheus.py +138 -37
  35. cribl_control_plane/models/inputelastic.py +108 -27
  36. cribl_control_plane/models/inputeventhub.py +176 -1
  37. cribl_control_plane/models/inputexec.py +29 -1
  38. cribl_control_plane/models/inputfile.py +40 -7
  39. cribl_control_plane/models/inputfirehose.py +58 -17
  40. cribl_control_plane/models/inputgooglepubsub.py +29 -1
  41. cribl_control_plane/models/inputgrafana.py +149 -32
  42. cribl_control_plane/models/inputhttp.py +58 -17
  43. cribl_control_plane/models/inputhttpraw.py +58 -17
  44. cribl_control_plane/models/inputjournalfiles.py +20 -1
  45. cribl_control_plane/models/inputkafka.py +182 -1
  46. cribl_control_plane/models/inputkinesis.py +65 -1
  47. cribl_control_plane/models/inputkubeevents.py +20 -1
  48. cribl_control_plane/models/inputkubelogs.py +29 -1
  49. cribl_control_plane/models/inputkubemetrics.py +29 -1
  50. cribl_control_plane/models/inputloki.py +67 -17
  51. cribl_control_plane/models/inputmetrics.py +58 -17
  52. cribl_control_plane/models/inputmodeldriventelemetry.py +58 -17
  53. cribl_control_plane/models/inputmsk.py +74 -1
  54. cribl_control_plane/models/inputnetflow.py +20 -1
  55. cribl_control_plane/models/inputoffice365mgmt.py +56 -1
  56. cribl_control_plane/models/inputoffice365msgtrace.py +56 -1
  57. cribl_control_plane/models/inputoffice365service.py +56 -1
  58. cribl_control_plane/models/inputopentelemetry.py +84 -16
  59. cribl_control_plane/models/inputprometheus.py +131 -37
  60. cribl_control_plane/models/inputprometheusrw.py +67 -17
  61. cribl_control_plane/models/inputrawudp.py +20 -1
  62. cribl_control_plane/models/inputs3.py +38 -1
  63. cribl_control_plane/models/inputs3inventory.py +47 -1
  64. cribl_control_plane/models/inputsecuritylake.py +47 -1
  65. cribl_control_plane/models/inputsnmp.py +29 -1
  66. cribl_control_plane/models/inputsplunk.py +76 -17
  67. cribl_control_plane/models/inputsplunkhec.py +66 -16
  68. cribl_control_plane/models/inputsplunksearch.py +56 -1
  69. cribl_control_plane/models/inputsqs.py +47 -1
  70. cribl_control_plane/models/inputsyslog.py +113 -32
  71. cribl_control_plane/models/inputsystemmetrics.py +110 -9
  72. cribl_control_plane/models/inputsystemstate.py +29 -1
  73. cribl_control_plane/models/inputtcp.py +77 -17
  74. cribl_control_plane/models/inputtcpjson.py +67 -17
  75. cribl_control_plane/models/inputwef.py +65 -1
  76. cribl_control_plane/models/inputwindowsmetrics.py +101 -9
  77. cribl_control_plane/models/inputwineventlogs.py +52 -1
  78. cribl_control_plane/models/inputwiz.py +38 -1
  79. cribl_control_plane/models/inputwizwebhook.py +58 -17
  80. cribl_control_plane/models/inputzscalerhec.py +66 -16
  81. cribl_control_plane/models/jobinfo.py +10 -4
  82. cribl_control_plane/models/jobstatus.py +34 -3
  83. cribl_control_plane/models/lakedatasetmetrics.py +17 -0
  84. cribl_control_plane/models/listconfiggroupbyproductop.py +11 -0
  85. cribl_control_plane/models/masterworkerentry.py +11 -1
  86. cribl_control_plane/models/nodeupgradestatus.py +38 -0
  87. cribl_control_plane/models/output.py +21 -21
  88. cribl_control_plane/models/outputazureblob.py +90 -1
  89. cribl_control_plane/models/outputazuredataexplorer.py +430 -93
  90. cribl_control_plane/models/outputazureeventhub.py +267 -22
  91. cribl_control_plane/models/outputazurelogs.py +105 -22
  92. cribl_control_plane/models/outputchronicle.py +105 -22
  93. cribl_control_plane/models/outputclickhouse.py +141 -22
  94. cribl_control_plane/models/outputcloudwatch.py +96 -22
  95. cribl_control_plane/models/outputconfluentcloud.py +292 -23
  96. cribl_control_plane/models/outputcriblhttp.py +123 -22
  97. cribl_control_plane/models/outputcribllake.py +76 -1
  98. cribl_control_plane/models/outputcribltcp.py +123 -22
  99. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +117 -23
  100. cribl_control_plane/models/outputdatabricks.py +76 -5
  101. cribl_control_plane/models/outputdatadog.py +132 -22
  102. cribl_control_plane/models/outputdataset.py +123 -22
  103. cribl_control_plane/models/outputdiskspool.py +11 -1
  104. cribl_control_plane/models/outputdls3.py +117 -1
  105. cribl_control_plane/models/outputdynatracehttp.py +141 -22
  106. cribl_control_plane/models/outputdynatraceotlp.py +141 -22
  107. cribl_control_plane/models/outputelastic.py +148 -22
  108. cribl_control_plane/models/outputelasticcloud.py +130 -22
  109. cribl_control_plane/models/outputexabeam.py +47 -1
  110. cribl_control_plane/models/outputfilesystem.py +72 -1
  111. cribl_control_plane/models/outputgooglechronicle.py +148 -23
  112. cribl_control_plane/models/outputgooglecloudlogging.py +115 -23
  113. cribl_control_plane/models/outputgooglecloudstorage.py +108 -1
  114. cribl_control_plane/models/outputgooglepubsub.py +96 -22
  115. cribl_control_plane/models/outputgrafanacloud.py +244 -43
  116. cribl_control_plane/models/outputgraphite.py +96 -22
  117. cribl_control_plane/models/outputhoneycomb.py +105 -22
  118. cribl_control_plane/models/outputhumiohec.py +114 -22
  119. cribl_control_plane/models/outputinfluxdb.py +114 -22
  120. cribl_control_plane/models/outputkafka.py +283 -20
  121. cribl_control_plane/models/outputkinesis.py +121 -22
  122. cribl_control_plane/models/outputloki.py +112 -20
  123. cribl_control_plane/models/outputminio.py +117 -1
  124. cribl_control_plane/models/outputmsk.py +175 -20
  125. cribl_control_plane/models/outputnewrelic.py +123 -22
  126. cribl_control_plane/models/outputnewrelicevents.py +115 -23
  127. cribl_control_plane/models/outputopentelemetry.py +159 -22
  128. cribl_control_plane/models/outputprometheus.py +105 -22
  129. cribl_control_plane/models/outputring.py +29 -1
  130. cribl_control_plane/models/outputs3.py +117 -1
  131. cribl_control_plane/models/outputsecuritylake.py +85 -1
  132. cribl_control_plane/models/outputsentinel.py +123 -22
  133. cribl_control_plane/models/outputsentineloneaisiem.py +124 -23
  134. cribl_control_plane/models/outputservicenow.py +150 -22
  135. cribl_control_plane/models/outputsignalfx.py +105 -22
  136. cribl_control_plane/models/outputsns.py +103 -20
  137. cribl_control_plane/models/outputsplunk.py +141 -22
  138. cribl_control_plane/models/outputsplunkhec.py +198 -22
  139. cribl_control_plane/models/outputsplunklb.py +170 -22
  140. cribl_control_plane/models/outputsqs.py +112 -20
  141. cribl_control_plane/models/outputstatsd.py +96 -22
  142. cribl_control_plane/models/outputstatsdext.py +96 -22
  143. cribl_control_plane/models/outputsumologic.py +105 -22
  144. cribl_control_plane/models/outputsyslog.py +238 -99
  145. cribl_control_plane/models/outputtcpjson.py +132 -22
  146. cribl_control_plane/models/outputwavefront.py +105 -22
  147. cribl_control_plane/models/outputwebhook.py +141 -22
  148. cribl_control_plane/models/outputxsiam.py +103 -20
  149. cribl_control_plane/models/resourcepolicy.py +11 -0
  150. cribl_control_plane/models/runnablejobcollection.py +68 -9
  151. cribl_control_plane/models/runnablejobexecutor.py +32 -9
  152. cribl_control_plane/models/runnablejobscheduledsearch.py +23 -9
  153. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +11 -0
  154. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +11 -0
  155. cribl_control_plane/sdk.py +2 -2
  156. {cribl_control_plane-0.3.0b3.dist-info → cribl_control_plane-0.3.0b12.dist-info}/METADATA +25 -7
  157. {cribl_control_plane-0.3.0b3.dist-info → cribl_control_plane-0.3.0b12.dist-info}/RECORD +158 -157
  158. {cribl_control_plane-0.3.0b3.dist-info → cribl_control_plane-0.3.0b12.dist-info}/WHEEL +0 -0
@@ -1,11 +1,12 @@
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 utils
4
+ from cribl_control_plane import models, 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
9
10
  from pydantic.functional_validators import PlainValidator
10
11
  from typing import List, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
@@ -111,6 +112,17 @@ class OutputSumoLogicBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMet
111
112
  QUEUE = "queue"
112
113
 
113
114
 
115
+ class OutputSumoLogicMode(str, Enum, metaclass=utils.OpenEnumMeta):
116
+ 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."""
117
+
118
+ # Error
119
+ ERROR = "error"
120
+ # Backpressure
121
+ ALWAYS = "always"
122
+ # Always On
123
+ BACKPRESSURE = "backpressure"
124
+
125
+
114
126
  class OutputSumoLogicCompression(str, Enum, metaclass=utils.OpenEnumMeta):
115
127
  r"""Codec to use to compress the persisted data"""
116
128
 
@@ -129,17 +141,6 @@ class OutputSumoLogicQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
129
141
  DROP = "drop"
130
142
 
131
143
 
132
- class OutputSumoLogicMode(str, Enum, metaclass=utils.OpenEnumMeta):
133
- 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."""
134
-
135
- # Error
136
- ERROR = "error"
137
- # Backpressure
138
- BACKPRESSURE = "backpressure"
139
- # Always On
140
- ALWAYS = "always"
141
-
142
-
143
144
  class OutputSumoLogicPqControlsTypedDict(TypedDict):
144
145
  pass
145
146
 
@@ -205,6 +206,16 @@ class OutputSumoLogicTypedDict(TypedDict):
205
206
  total_memory_limit_kb: NotRequired[float]
206
207
  r"""Maximum total size of the batches waiting to be sent. If left blank, defaults to 5 times the max body size (if set). If 0, no limit is enforced."""
207
208
  description: NotRequired[str]
209
+ pq_strict_ordering: NotRequired[bool]
210
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
211
+ pq_rate_per_sec: NotRequired[float]
212
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
213
+ pq_mode: NotRequired[OutputSumoLogicMode]
214
+ 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."""
215
+ pq_max_buffer_size: NotRequired[float]
216
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
217
+ pq_max_backpressure_sec: NotRequired[float]
218
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
208
219
  pq_max_file_size: NotRequired[str]
209
220
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
210
221
  pq_max_size: NotRequired[str]
@@ -215,8 +226,6 @@ class OutputSumoLogicTypedDict(TypedDict):
215
226
  r"""Codec to use to compress the persisted data"""
216
227
  pq_on_backpressure: NotRequired[OutputSumoLogicQueueFullBehavior]
217
228
  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."""
218
- pq_mode: NotRequired[OutputSumoLogicMode]
219
- 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."""
220
229
  pq_controls: NotRequired[OutputSumoLogicPqControlsTypedDict]
221
230
 
222
231
 
@@ -349,6 +358,34 @@ class OutputSumoLogic(BaseModel):
349
358
 
350
359
  description: Optional[str] = None
351
360
 
361
+ pq_strict_ordering: Annotated[
362
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
363
+ ] = True
364
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
365
+
366
+ pq_rate_per_sec: Annotated[
367
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
368
+ ] = 0
369
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
370
+
371
+ pq_mode: Annotated[
372
+ Annotated[
373
+ Optional[OutputSumoLogicMode], PlainValidator(validate_open_enum(False))
374
+ ],
375
+ pydantic.Field(alias="pqMode"),
376
+ ] = OutputSumoLogicMode.ERROR
377
+ 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."""
378
+
379
+ pq_max_buffer_size: Annotated[
380
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
381
+ ] = 42
382
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
383
+
384
+ pq_max_backpressure_sec: Annotated[
385
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
386
+ ] = 30
387
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
388
+
352
389
  pq_max_file_size: Annotated[
353
390
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
354
391
  ] = "1 MB"
@@ -380,14 +417,60 @@ class OutputSumoLogic(BaseModel):
380
417
  ] = OutputSumoLogicQueueFullBehavior.BLOCK
381
418
  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."""
382
419
 
383
- pq_mode: Annotated[
384
- Annotated[
385
- Optional[OutputSumoLogicMode], PlainValidator(validate_open_enum(False))
386
- ],
387
- pydantic.Field(alias="pqMode"),
388
- ] = OutputSumoLogicMode.ERROR
389
- r"""In Error mode, PQ writes events to the filesystem if the Destination is unavailable. In Backpressure mode, PQ writes events to the filesystem when it detects backpressure from the Destination. In Always On mode, PQ always writes events to the filesystem."""
390
-
391
420
  pq_controls: Annotated[
392
421
  Optional[OutputSumoLogicPqControls], pydantic.Field(alias="pqControls")
393
422
  ] = None
423
+
424
+ @field_serializer("format_")
425
+ def serialize_format_(self, value):
426
+ if isinstance(value, str):
427
+ try:
428
+ return models.OutputSumoLogicDataFormat(value)
429
+ except ValueError:
430
+ return value
431
+ return value
432
+
433
+ @field_serializer("failed_request_logging_mode")
434
+ def serialize_failed_request_logging_mode(self, value):
435
+ if isinstance(value, str):
436
+ try:
437
+ return models.OutputSumoLogicFailedRequestLoggingMode(value)
438
+ except ValueError:
439
+ return value
440
+ return value
441
+
442
+ @field_serializer("on_backpressure")
443
+ def serialize_on_backpressure(self, value):
444
+ if isinstance(value, str):
445
+ try:
446
+ return models.OutputSumoLogicBackpressureBehavior(value)
447
+ except ValueError:
448
+ return value
449
+ return value
450
+
451
+ @field_serializer("pq_mode")
452
+ def serialize_pq_mode(self, value):
453
+ if isinstance(value, str):
454
+ try:
455
+ return models.OutputSumoLogicMode(value)
456
+ except ValueError:
457
+ return value
458
+ return value
459
+
460
+ @field_serializer("pq_compress")
461
+ def serialize_pq_compress(self, value):
462
+ if isinstance(value, str):
463
+ try:
464
+ return models.OutputSumoLogicCompression(value)
465
+ except ValueError:
466
+ return value
467
+ return value
468
+
469
+ @field_serializer("pq_on_backpressure")
470
+ def serialize_pq_on_backpressure(self, value):
471
+ if isinstance(value, str):
472
+ try:
473
+ return models.OutputSumoLogicQueueFullBehavior(value)
474
+ except ValueError:
475
+ return value
476
+ return value
@@ -1,11 +1,12 @@
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 utils
4
+ from cribl_control_plane import models, 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
9
10
  from pydantic.functional_validators import PlainValidator
10
11
  from typing import List, Optional
11
12
  from typing_extensions import Annotated, NotRequired, TypedDict
@@ -90,6 +91,54 @@ class TimestampFormat(str, Enum, metaclass=utils.OpenEnumMeta):
90
91
  ISO8601 = "iso8601"
91
92
 
92
93
 
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
+
93
142
  class OutputSyslogMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
94
143
  TL_SV1 = "TLSv1"
95
144
  TL_SV1_1 = "TLSv1.1"
@@ -172,6 +221,24 @@ class OutputSyslogTLSSettingsClientSide(BaseModel):
172
221
  pydantic.Field(alias="maxVersion"),
173
222
  ] = None
174
223
 
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
+
175
242
 
176
243
  class OutputSyslogBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
177
244
  r"""How to handle events when all receivers are exerting backpressure"""
@@ -184,6 +251,17 @@ class OutputSyslogBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
184
251
  QUEUE = "queue"
185
252
 
186
253
 
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
+
187
265
  class OutputSyslogCompression(str, Enum, metaclass=utils.OpenEnumMeta):
188
266
  r"""Codec to use to compress the persisted data"""
189
267
 
@@ -202,17 +280,6 @@ class OutputSyslogQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
202
280
  DROP = "drop"
203
281
 
204
282
 
205
- class OutputSyslogMode(str, Enum, metaclass=utils.OpenEnumMeta):
206
- 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."""
207
-
208
- # Error
209
- ERROR = "error"
210
- # Backpressure
211
- BACKPRESSURE = "backpressure"
212
- # Always On
213
- ALWAYS = "always"
214
-
215
-
216
283
  class OutputSyslogPqControlsTypedDict(TypedDict):
217
284
  pass
218
285
 
@@ -221,43 +288,6 @@ class OutputSyslogPqControls(BaseModel):
221
288
  pass
222
289
 
223
290
 
224
- class OutputSyslogTLS(str, Enum):
225
- r"""Whether to inherit TLS configs from group setting or disable TLS"""
226
-
227
- INHERIT = "inherit"
228
- OFF = "off"
229
-
230
-
231
- class OutputSyslogHostTypedDict(TypedDict):
232
- host: str
233
- r"""The hostname of the receiver"""
234
- port: NotRequired[float]
235
- r"""The port to connect to on the provided host"""
236
- tls: NotRequired[OutputSyslogTLS]
237
- r"""Whether to inherit TLS configs from group setting or disable TLS"""
238
- servername: NotRequired[str]
239
- 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."""
240
- weight: NotRequired[float]
241
- r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
242
-
243
-
244
- class OutputSyslogHost(BaseModel):
245
- host: str
246
- r"""The hostname of the receiver"""
247
-
248
- port: Optional[float] = 9997
249
- r"""The port to connect to on the provided host"""
250
-
251
- tls: Optional[OutputSyslogTLS] = OutputSyslogTLS.INHERIT
252
- r"""Whether to inherit TLS configs from group setting or disable TLS"""
253
-
254
- servername: Optional[str] = None
255
- 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."""
256
-
257
- weight: Optional[float] = 1
258
- r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
259
-
260
-
261
291
  class OutputSyslogTypedDict(TypedDict):
262
292
  type: OutputSyslogType
263
293
  id: NotRequired[str]
@@ -291,6 +321,20 @@ class OutputSyslogTypedDict(TypedDict):
291
321
  description: NotRequired[str]
292
322
  load_balanced: NotRequired[bool]
293
323
  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."""
294
338
  connection_timeout: NotRequired[float]
295
339
  r"""Amount of time (milliseconds) to wait for the connection to establish before retrying"""
296
340
  write_timeout: NotRequired[float]
@@ -298,14 +342,20 @@ class OutputSyslogTypedDict(TypedDict):
298
342
  tls: NotRequired[OutputSyslogTLSSettingsClientSideTypedDict]
299
343
  on_backpressure: NotRequired[OutputSyslogBackpressureBehavior]
300
344
  r"""How to handle events when all receivers are exerting backpressure"""
301
- host: NotRequired[str]
302
- r"""The hostname of the receiver"""
303
- port: NotRequired[float]
304
- r"""The port to connect to on the provided host"""
305
345
  max_record_size: NotRequired[float]
306
346
  r"""Maximum size of syslog messages. Make sure this value is less than or equal to the MTU to avoid UDP packet fragmentation."""
307
347
  udp_dns_resolve_period_sec: NotRequired[float]
308
348
  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"""
309
359
  pq_max_file_size: NotRequired[str]
310
360
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
311
361
  pq_max_size: NotRequired[str]
@@ -316,19 +366,7 @@ class OutputSyslogTypedDict(TypedDict):
316
366
  r"""Codec to use to compress the persisted data"""
317
367
  pq_on_backpressure: NotRequired[OutputSyslogQueueFullBehavior]
318
368
  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."""
319
- pq_mode: NotRequired[OutputSyslogMode]
320
- 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."""
321
369
  pq_controls: NotRequired[OutputSyslogPqControlsTypedDict]
322
- dns_resolve_period_sec: NotRequired[float]
323
- r"""The interval in which to re-resolve any hostnames and pick up destinations from A records"""
324
- load_balance_stats_period_sec: NotRequired[float]
325
- r"""How far back in time to keep traffic stats for load balancing purposes"""
326
- max_concurrent_senders: NotRequired[float]
327
- 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."""
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
370
 
333
371
 
334
372
  class OutputSyslog(BaseModel):
@@ -406,6 +444,33 @@ class OutputSyslog(BaseModel):
406
444
  )
407
445
  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."""
408
446
 
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
+
409
474
  connection_timeout: Annotated[
410
475
  Optional[float], pydantic.Field(alias="connectionTimeout")
411
476
  ] = 10000
@@ -427,12 +492,6 @@ class OutputSyslog(BaseModel):
427
492
  ] = OutputSyslogBackpressureBehavior.BLOCK
428
493
  r"""How to handle events when all receivers are exerting backpressure"""
429
494
 
430
- host: Optional[str] = None
431
- r"""The hostname of the receiver"""
432
-
433
- port: Optional[float] = None
434
- r"""The port to connect to on the provided host"""
435
-
436
495
  max_record_size: Annotated[
437
496
  Optional[float], pydantic.Field(alias="maxRecordSize")
438
497
  ] = 1500
@@ -443,6 +502,34 @@ class OutputSyslog(BaseModel):
443
502
  ] = 0
444
503
  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."""
445
504
 
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
+
446
533
  pq_max_file_size: Annotated[
447
534
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
448
535
  ] = "1 MB"
@@ -473,35 +560,87 @@ class OutputSyslog(BaseModel):
473
560
  ] = OutputSyslogQueueFullBehavior.BLOCK
474
561
  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."""
475
562
 
476
- pq_mode: Annotated[
477
- Annotated[
478
- Optional[OutputSyslogMode], PlainValidator(validate_open_enum(False))
479
- ],
480
- pydantic.Field(alias="pqMode"),
481
- ] = OutputSyslogMode.ERROR
482
- 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."""
483
-
484
563
  pq_controls: Annotated[
485
564
  Optional[OutputSyslogPqControls], pydantic.Field(alias="pqControls")
486
565
  ] = None
487
566
 
488
- dns_resolve_period_sec: Annotated[
489
- Optional[float], pydantic.Field(alias="dnsResolvePeriodSec")
490
- ] = 600
491
- r"""The interval in which to re-resolve any hostnames and pick up destinations from A records"""
492
-
493
- load_balance_stats_period_sec: Annotated[
494
- Optional[float], pydantic.Field(alias="loadBalanceStatsPeriodSec")
495
- ] = 300
496
- r"""How far back in time to keep traffic stats for load balancing purposes"""
497
-
498
- max_concurrent_senders: Annotated[
499
- Optional[float], pydantic.Field(alias="maxConcurrentSenders")
500
- ] = 0
501
- 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."""
502
-
503
- exclude_self: Annotated[Optional[bool], pydantic.Field(alias="excludeSelf")] = False
504
- r"""Exclude all IPs of the current host from the list of any resolved hostnames"""
505
-
506
- hosts: Optional[List[OutputSyslogHost]] = None
507
- r"""Set of hosts to load-balance data to."""
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