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
@@ -15,6 +16,96 @@ class OutputSplunkHecType(str, Enum):
15
16
  SPLUNK_HEC = "splunk_hec"
16
17
 
17
18
 
19
+ class OutputSplunkHecMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
20
+ TL_SV1 = "TLSv1"
21
+ TL_SV1_1 = "TLSv1.1"
22
+ TL_SV1_2 = "TLSv1.2"
23
+ TL_SV1_3 = "TLSv1.3"
24
+
25
+
26
+ class OutputSplunkHecMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
27
+ TL_SV1 = "TLSv1"
28
+ TL_SV1_1 = "TLSv1.1"
29
+ TL_SV1_2 = "TLSv1.2"
30
+ TL_SV1_3 = "TLSv1.3"
31
+
32
+
33
+ class OutputSplunkHecTLSSettingsClientSideTypedDict(TypedDict):
34
+ disabled: NotRequired[bool]
35
+ servername: NotRequired[str]
36
+ r"""Server name for the SNI (Server Name Indication) TLS extension. It must be a host name, and not an IP address."""
37
+ certificate_name: NotRequired[str]
38
+ r"""The name of the predefined certificate"""
39
+ ca_path: NotRequired[str]
40
+ r"""Path on client in which to find CA certificates to verify the server's cert. PEM format. Can reference $ENV_VARS."""
41
+ priv_key_path: NotRequired[str]
42
+ r"""Path on client in which to find the private key to use. PEM format. Can reference $ENV_VARS."""
43
+ cert_path: NotRequired[str]
44
+ r"""Path on client in which to find certificates to use. PEM format. Can reference $ENV_VARS."""
45
+ passphrase: NotRequired[str]
46
+ r"""Passphrase to use to decrypt private key"""
47
+ min_version: NotRequired[OutputSplunkHecMinimumTLSVersion]
48
+ max_version: NotRequired[OutputSplunkHecMaximumTLSVersion]
49
+
50
+
51
+ class OutputSplunkHecTLSSettingsClientSide(BaseModel):
52
+ disabled: Optional[bool] = True
53
+
54
+ servername: Optional[str] = None
55
+ r"""Server name for the SNI (Server Name Indication) TLS extension. It must be a host name, and not an IP address."""
56
+
57
+ certificate_name: Annotated[
58
+ Optional[str], pydantic.Field(alias="certificateName")
59
+ ] = None
60
+ r"""The name of the predefined certificate"""
61
+
62
+ ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
63
+ r"""Path on client in which to find CA certificates to verify the server's cert. PEM format. Can reference $ENV_VARS."""
64
+
65
+ priv_key_path: Annotated[Optional[str], pydantic.Field(alias="privKeyPath")] = None
66
+ r"""Path on client in which to find the private key to use. PEM format. Can reference $ENV_VARS."""
67
+
68
+ cert_path: Annotated[Optional[str], pydantic.Field(alias="certPath")] = None
69
+ r"""Path on client in which to find certificates to use. PEM format. Can reference $ENV_VARS."""
70
+
71
+ passphrase: Optional[str] = None
72
+ r"""Passphrase to use to decrypt private key"""
73
+
74
+ min_version: Annotated[
75
+ Annotated[
76
+ Optional[OutputSplunkHecMinimumTLSVersion],
77
+ PlainValidator(validate_open_enum(False)),
78
+ ],
79
+ pydantic.Field(alias="minVersion"),
80
+ ] = None
81
+
82
+ max_version: Annotated[
83
+ Annotated[
84
+ Optional[OutputSplunkHecMaximumTLSVersion],
85
+ PlainValidator(validate_open_enum(False)),
86
+ ],
87
+ pydantic.Field(alias="maxVersion"),
88
+ ] = None
89
+
90
+ @field_serializer("min_version")
91
+ def serialize_min_version(self, value):
92
+ if isinstance(value, str):
93
+ try:
94
+ return models.OutputSplunkHecMinimumTLSVersion(value)
95
+ except ValueError:
96
+ return value
97
+ return value
98
+
99
+ @field_serializer("max_version")
100
+ def serialize_max_version(self, value):
101
+ if isinstance(value, str):
102
+ try:
103
+ return models.OutputSplunkHecMaximumTLSVersion(value)
104
+ except ValueError:
105
+ return value
106
+ return value
107
+
108
+
18
109
  class OutputSplunkHecExtraHTTPHeaderTypedDict(TypedDict):
19
110
  value: str
20
111
  name: NotRequired[str]
@@ -124,6 +215,17 @@ class OutputSplunkHecURL(BaseModel):
124
215
  r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
125
216
 
126
217
 
218
+ class OutputSplunkHecMode(str, Enum, metaclass=utils.OpenEnumMeta):
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
+
221
+ # Error
222
+ ERROR = "error"
223
+ # Backpressure
224
+ ALWAYS = "always"
225
+ # Always On
226
+ BACKPRESSURE = "backpressure"
227
+
228
+
127
229
  class OutputSplunkHecCompression(str, Enum, metaclass=utils.OpenEnumMeta):
128
230
  r"""Codec to use to compress the persisted data"""
129
231
 
@@ -142,17 +244,6 @@ class OutputSplunkHecQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
142
244
  DROP = "drop"
143
245
 
144
246
 
145
- class OutputSplunkHecMode(str, Enum, metaclass=utils.OpenEnumMeta):
146
- 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."""
147
-
148
- # Error
149
- ERROR = "error"
150
- # Backpressure
151
- BACKPRESSURE = "backpressure"
152
- # Always On
153
- ALWAYS = "always"
154
-
155
-
156
247
  class OutputSplunkHecPqControlsTypedDict(TypedDict):
157
248
  pass
158
249
 
@@ -179,6 +270,7 @@ class OutputSplunkHecTypedDict(TypedDict):
179
270
  r"""In the Splunk app, define which Splunk processing queue to send the events after HEC processing."""
180
271
  tcp_routing: NotRequired[str]
181
272
  r"""In the Splunk app, set the value of _TCP_ROUTING for events that do not have _ctrl._TCP_ROUTING set."""
273
+ tls: NotRequired[OutputSplunkHecTLSSettingsClientSideTypedDict]
182
274
  concurrency: NotRequired[float]
183
275
  r"""Maximum number of ongoing requests before blocking"""
184
276
  max_payload_size_kb: NotRequired[float]
@@ -231,6 +323,16 @@ class OutputSplunkHecTypedDict(TypedDict):
231
323
  r"""Splunk HEC authentication token"""
232
324
  text_secret: NotRequired[str]
233
325
  r"""Select or create a stored text secret"""
326
+ pq_strict_ordering: NotRequired[bool]
327
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
328
+ pq_rate_per_sec: NotRequired[float]
329
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
330
+ pq_mode: NotRequired[OutputSplunkHecMode]
331
+ 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."""
332
+ pq_max_buffer_size: NotRequired[float]
333
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
334
+ pq_max_backpressure_sec: NotRequired[float]
335
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
234
336
  pq_max_file_size: NotRequired[str]
235
337
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
236
338
  pq_max_size: NotRequired[str]
@@ -241,8 +343,6 @@ class OutputSplunkHecTypedDict(TypedDict):
241
343
  r"""Codec to use to compress the persisted data"""
242
344
  pq_on_backpressure: NotRequired[OutputSplunkHecQueueFullBehavior]
243
345
  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."""
244
- pq_mode: NotRequired[OutputSplunkHecMode]
245
- 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."""
246
346
  pq_controls: NotRequired[OutputSplunkHecPqControlsTypedDict]
247
347
 
248
348
 
@@ -281,6 +381,8 @@ class OutputSplunkHec(BaseModel):
281
381
  )
282
382
  r"""In the Splunk app, set the value of _TCP_ROUTING for events that do not have _ctrl._TCP_ROUTING set."""
283
383
 
384
+ tls: Optional[OutputSplunkHecTLSSettingsClientSide] = None
385
+
284
386
  concurrency: Optional[float] = 5
285
387
  r"""Maximum number of ongoing requests before blocking"""
286
388
 
@@ -403,6 +505,34 @@ class OutputSplunkHec(BaseModel):
403
505
  text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
404
506
  r"""Select or create a stored text secret"""
405
507
 
508
+ pq_strict_ordering: Annotated[
509
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
510
+ ] = True
511
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
512
+
513
+ pq_rate_per_sec: Annotated[
514
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
515
+ ] = 0
516
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
517
+
518
+ pq_mode: Annotated[
519
+ Annotated[
520
+ Optional[OutputSplunkHecMode], PlainValidator(validate_open_enum(False))
521
+ ],
522
+ pydantic.Field(alias="pqMode"),
523
+ ] = OutputSplunkHecMode.ERROR
524
+ 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."""
525
+
526
+ pq_max_buffer_size: Annotated[
527
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
528
+ ] = 42
529
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
530
+
531
+ pq_max_backpressure_sec: Annotated[
532
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
533
+ ] = 30
534
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
535
+
406
536
  pq_max_file_size: Annotated[
407
537
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
408
538
  ] = "1 MB"
@@ -434,14 +564,60 @@ class OutputSplunkHec(BaseModel):
434
564
  ] = OutputSplunkHecQueueFullBehavior.BLOCK
435
565
  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."""
436
566
 
437
- pq_mode: Annotated[
438
- Annotated[
439
- Optional[OutputSplunkHecMode], PlainValidator(validate_open_enum(False))
440
- ],
441
- pydantic.Field(alias="pqMode"),
442
- ] = OutputSplunkHecMode.ERROR
443
- 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."""
444
-
445
567
  pq_controls: Annotated[
446
568
  Optional[OutputSplunkHecPqControls], pydantic.Field(alias="pqControls")
447
569
  ] = None
570
+
571
+ @field_serializer("failed_request_logging_mode")
572
+ def serialize_failed_request_logging_mode(self, value):
573
+ if isinstance(value, str):
574
+ try:
575
+ return models.OutputSplunkHecFailedRequestLoggingMode(value)
576
+ except ValueError:
577
+ return value
578
+ return value
579
+
580
+ @field_serializer("auth_type")
581
+ def serialize_auth_type(self, value):
582
+ if isinstance(value, str):
583
+ try:
584
+ return models.OutputSplunkHecAuthenticationMethod(value)
585
+ except ValueError:
586
+ return value
587
+ return value
588
+
589
+ @field_serializer("on_backpressure")
590
+ def serialize_on_backpressure(self, value):
591
+ if isinstance(value, str):
592
+ try:
593
+ return models.OutputSplunkHecBackpressureBehavior(value)
594
+ except ValueError:
595
+ return value
596
+ return value
597
+
598
+ @field_serializer("pq_mode")
599
+ def serialize_pq_mode(self, value):
600
+ if isinstance(value, str):
601
+ try:
602
+ return models.OutputSplunkHecMode(value)
603
+ except ValueError:
604
+ return value
605
+ return value
606
+
607
+ @field_serializer("pq_compress")
608
+ def serialize_pq_compress(self, value):
609
+ if isinstance(value, str):
610
+ try:
611
+ return models.OutputSplunkHecCompression(value)
612
+ except ValueError:
613
+ return value
614
+ return value
615
+
616
+ @field_serializer("pq_on_backpressure")
617
+ def serialize_pq_on_backpressure(self, value):
618
+ if isinstance(value, str):
619
+ try:
620
+ return models.OutputSplunkHecQueueFullBehavior(value)
621
+ except ValueError:
622
+ return value
623
+ 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
@@ -106,6 +107,24 @@ class OutputSplunkLbTLSSettingsClientSide(BaseModel):
106
107
  pydantic.Field(alias="maxVersion"),
107
108
  ] = None
108
109
 
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
+
109
128
 
110
129
  class OutputSplunkLbMaxS2SVersion(str, Enum, metaclass=utils.OpenEnumMeta):
111
130
  r"""The highest S2S protocol version to advertise during handshake"""
@@ -167,6 +186,17 @@ class OutputSplunkLbAuthToken(BaseModel):
167
186
  ] = IndexerDiscoveryConfigsAuthTokenAuthenticationMethod.MANUAL
168
187
  r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
169
188
 
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
+
170
200
 
171
201
  class IndexerDiscoveryConfigsAuthenticationMethod(
172
202
  str, Enum, metaclass=utils.OpenEnumMeta
@@ -237,6 +267,15 @@ class IndexerDiscoveryConfigs(BaseModel):
237
267
  text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
238
268
  r"""Select or create a stored text secret"""
239
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
+
240
279
 
241
280
  class OutputSplunkLbTLS(str, Enum, metaclass=utils.OpenEnumMeta):
242
281
  r"""Whether to inherit TLS configs from group setting or disable TLS"""
@@ -276,6 +315,26 @@ class OutputSplunkLbHost(BaseModel):
276
315
  weight: Optional[float] = 1
277
316
  r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
278
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
+
279
338
 
280
339
  class OutputSplunkLbPqCompressCompression(str, Enum, metaclass=utils.OpenEnumMeta):
281
340
  r"""Codec to use to compress the persisted data"""
@@ -295,17 +354,6 @@ class OutputSplunkLbQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
295
354
  DROP = "drop"
296
355
 
297
356
 
298
- class OutputSplunkLbMode(str, Enum, metaclass=utils.OpenEnumMeta):
299
- 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."""
300
-
301
- # Error
302
- ERROR = "error"
303
- # Backpressure
304
- BACKPRESSURE = "backpressure"
305
- # Always On
306
- ALWAYS = "always"
307
-
308
-
309
357
  class OutputSplunkLbPqControlsTypedDict(TypedDict):
310
358
  pass
311
359
 
@@ -368,6 +416,16 @@ class OutputSplunkLbTypedDict(TypedDict):
368
416
  r"""List of configurations to set up indexer discovery in Splunk Indexer clustering environment."""
369
417
  exclude_self: NotRequired[bool]
370
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"""
371
429
  pq_max_file_size: NotRequired[str]
372
430
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
373
431
  pq_max_size: NotRequired[str]
@@ -378,8 +436,6 @@ class OutputSplunkLbTypedDict(TypedDict):
378
436
  r"""Codec to use to compress the persisted data"""
379
437
  pq_on_backpressure: NotRequired[OutputSplunkLbQueueFullBehavior]
380
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."""
381
- pq_mode: NotRequired[OutputSplunkLbMode]
382
- 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."""
383
439
  pq_controls: NotRequired[OutputSplunkLbPqControlsTypedDict]
384
440
  auth_token: NotRequired[str]
385
441
  r"""Shared secret token to use when establishing a connection to a Splunk indexer."""
@@ -523,6 +579,34 @@ class OutputSplunkLb(BaseModel):
523
579
  exclude_self: Annotated[Optional[bool], pydantic.Field(alias="excludeSelf")] = False
524
580
  r"""Exclude all IPs of the current host from the list of any resolved hostnames"""
525
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
+
526
610
  pq_max_file_size: Annotated[
527
611
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
528
612
  ] = "1 MB"
@@ -554,14 +638,6 @@ class OutputSplunkLb(BaseModel):
554
638
  ] = OutputSplunkLbQueueFullBehavior.BLOCK
555
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."""
556
640
 
557
- pq_mode: Annotated[
558
- Annotated[
559
- Optional[OutputSplunkLbMode], PlainValidator(validate_open_enum(False))
560
- ],
561
- pydantic.Field(alias="pqMode"),
562
- ] = OutputSplunkLbMode.ERROR
563
- 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."""
564
-
565
641
  pq_controls: Annotated[
566
642
  Optional[OutputSplunkLbPqControls], pydantic.Field(alias="pqControls")
567
643
  ] = None
@@ -571,3 +647,75 @@ class OutputSplunkLb(BaseModel):
571
647
 
572
648
  text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
573
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