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
@@ -53,6 +54,17 @@ class OutputSqsBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
53
54
  QUEUE = "queue"
54
55
 
55
56
 
57
+ class OutputSqsMode(str, Enum, metaclass=utils.OpenEnumMeta):
58
+ 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."""
59
+
60
+ # Error
61
+ ERROR = "error"
62
+ # Backpressure
63
+ ALWAYS = "always"
64
+ # Always On
65
+ BACKPRESSURE = "backpressure"
66
+
67
+
56
68
  class OutputSqsCompression(str, Enum, metaclass=utils.OpenEnumMeta):
57
69
  r"""Codec to use to compress the persisted data"""
58
70
 
@@ -71,17 +83,6 @@ class OutputSqsQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
71
83
  DROP = "drop"
72
84
 
73
85
 
74
- class OutputSqsMode(str, Enum, metaclass=utils.OpenEnumMeta):
75
- 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."""
76
-
77
- # Error
78
- ERROR = "error"
79
- # Backpressure
80
- BACKPRESSURE = "backpressure"
81
- # Always On
82
- ALWAYS = "always"
83
-
84
-
85
86
  class OutputSqsPqControlsTypedDict(TypedDict):
86
87
  pass
87
88
 
@@ -147,6 +148,16 @@ class OutputSqsTypedDict(TypedDict):
147
148
  aws_api_key: NotRequired[str]
148
149
  aws_secret: NotRequired[str]
149
150
  r"""Select or create a stored secret that references your access key and secret key"""
151
+ pq_strict_ordering: NotRequired[bool]
152
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
153
+ pq_rate_per_sec: NotRequired[float]
154
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
155
+ pq_mode: NotRequired[OutputSqsMode]
156
+ 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."""
157
+ pq_max_buffer_size: NotRequired[float]
158
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
159
+ pq_max_backpressure_sec: NotRequired[float]
160
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
150
161
  pq_max_file_size: NotRequired[str]
151
162
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
152
163
  pq_max_size: NotRequired[str]
@@ -157,8 +168,6 @@ class OutputSqsTypedDict(TypedDict):
157
168
  r"""Codec to use to compress the persisted data"""
158
169
  pq_on_backpressure: NotRequired[OutputSqsQueueFullBehavior]
159
170
  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."""
160
- pq_mode: NotRequired[OutputSqsMode]
161
- 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."""
162
171
  pq_controls: NotRequired[OutputSqsPqControlsTypedDict]
163
172
 
164
173
 
@@ -298,6 +307,32 @@ class OutputSqs(BaseModel):
298
307
  aws_secret: Annotated[Optional[str], pydantic.Field(alias="awsSecret")] = None
299
308
  r"""Select or create a stored secret that references your access key and secret key"""
300
309
 
310
+ pq_strict_ordering: Annotated[
311
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
312
+ ] = True
313
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
314
+
315
+ pq_rate_per_sec: Annotated[
316
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
317
+ ] = 0
318
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
319
+
320
+ pq_mode: Annotated[
321
+ Annotated[Optional[OutputSqsMode], PlainValidator(validate_open_enum(False))],
322
+ pydantic.Field(alias="pqMode"),
323
+ ] = OutputSqsMode.ERROR
324
+ 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."""
325
+
326
+ pq_max_buffer_size: Annotated[
327
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
328
+ ] = 42
329
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
330
+
331
+ pq_max_backpressure_sec: Annotated[
332
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
333
+ ] = 30
334
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
335
+
301
336
  pq_max_file_size: Annotated[
302
337
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
303
338
  ] = "1 MB"
@@ -328,12 +363,69 @@ class OutputSqs(BaseModel):
328
363
  ] = OutputSqsQueueFullBehavior.BLOCK
329
364
  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."""
330
365
 
331
- pq_mode: Annotated[
332
- Annotated[Optional[OutputSqsMode], PlainValidator(validate_open_enum(False))],
333
- pydantic.Field(alias="pqMode"),
334
- ] = OutputSqsMode.ERROR
335
- 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."""
336
-
337
366
  pq_controls: Annotated[
338
367
  Optional[OutputSqsPqControls], pydantic.Field(alias="pqControls")
339
368
  ] = None
369
+
370
+ @field_serializer("queue_type")
371
+ def serialize_queue_type(self, value):
372
+ if isinstance(value, str):
373
+ try:
374
+ return models.OutputSqsQueueType(value)
375
+ except ValueError:
376
+ return value
377
+ return value
378
+
379
+ @field_serializer("aws_authentication_method")
380
+ def serialize_aws_authentication_method(self, value):
381
+ if isinstance(value, str):
382
+ try:
383
+ return models.OutputSqsAuthenticationMethod(value)
384
+ except ValueError:
385
+ return value
386
+ return value
387
+
388
+ @field_serializer("signature_version")
389
+ def serialize_signature_version(self, value):
390
+ if isinstance(value, str):
391
+ try:
392
+ return models.OutputSqsSignatureVersion(value)
393
+ except ValueError:
394
+ return value
395
+ return value
396
+
397
+ @field_serializer("on_backpressure")
398
+ def serialize_on_backpressure(self, value):
399
+ if isinstance(value, str):
400
+ try:
401
+ return models.OutputSqsBackpressureBehavior(value)
402
+ except ValueError:
403
+ return value
404
+ return value
405
+
406
+ @field_serializer("pq_mode")
407
+ def serialize_pq_mode(self, value):
408
+ if isinstance(value, str):
409
+ try:
410
+ return models.OutputSqsMode(value)
411
+ except ValueError:
412
+ return value
413
+ return value
414
+
415
+ @field_serializer("pq_compress")
416
+ def serialize_pq_compress(self, value):
417
+ if isinstance(value, str):
418
+ try:
419
+ return models.OutputSqsCompression(value)
420
+ except ValueError:
421
+ return value
422
+ return value
423
+
424
+ @field_serializer("pq_on_backpressure")
425
+ def serialize_pq_on_backpressure(self, value):
426
+ if isinstance(value, str):
427
+ try:
428
+ return models.OutputSqsQueueFullBehavior(value)
429
+ except ValueError:
430
+ return value
431
+ 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
@@ -35,6 +36,17 @@ class OutputStatsdBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
35
36
  QUEUE = "queue"
36
37
 
37
38
 
39
+ class OutputStatsdMode(str, Enum, metaclass=utils.OpenEnumMeta):
40
+ 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."""
41
+
42
+ # Error
43
+ ERROR = "error"
44
+ # Backpressure
45
+ ALWAYS = "always"
46
+ # Always On
47
+ BACKPRESSURE = "backpressure"
48
+
49
+
38
50
  class OutputStatsdCompression(str, Enum, metaclass=utils.OpenEnumMeta):
39
51
  r"""Codec to use to compress the persisted data"""
40
52
 
@@ -53,17 +65,6 @@ class OutputStatsdQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
53
65
  DROP = "drop"
54
66
 
55
67
 
56
- class OutputStatsdMode(str, Enum, metaclass=utils.OpenEnumMeta):
57
- 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."""
58
-
59
- # Error
60
- ERROR = "error"
61
- # Backpressure
62
- BACKPRESSURE = "backpressure"
63
- # Always On
64
- ALWAYS = "always"
65
-
66
-
67
68
  class OutputStatsdPqControlsTypedDict(TypedDict):
68
69
  pass
69
70
 
@@ -105,6 +106,16 @@ class OutputStatsdTypedDict(TypedDict):
105
106
  r"""Amount of time (milliseconds) to wait for a write to complete before assuming connection is dead"""
106
107
  on_backpressure: NotRequired[OutputStatsdBackpressureBehavior]
107
108
  r"""How to handle events when all receivers are exerting backpressure"""
109
+ pq_strict_ordering: NotRequired[bool]
110
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
111
+ pq_rate_per_sec: NotRequired[float]
112
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
113
+ pq_mode: NotRequired[OutputStatsdMode]
114
+ 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."""
115
+ pq_max_buffer_size: NotRequired[float]
116
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
117
+ pq_max_backpressure_sec: NotRequired[float]
118
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
108
119
  pq_max_file_size: NotRequired[str]
109
120
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
110
121
  pq_max_size: NotRequired[str]
@@ -115,8 +126,6 @@ class OutputStatsdTypedDict(TypedDict):
115
126
  r"""Codec to use to compress the persisted data"""
116
127
  pq_on_backpressure: NotRequired[OutputStatsdQueueFullBehavior]
117
128
  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."""
118
- pq_mode: NotRequired[OutputStatsdMode]
119
- 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."""
120
129
  pq_controls: NotRequired[OutputStatsdPqControlsTypedDict]
121
130
 
122
131
 
@@ -191,6 +200,34 @@ class OutputStatsd(BaseModel):
191
200
  ] = OutputStatsdBackpressureBehavior.BLOCK
192
201
  r"""How to handle events when all receivers are exerting backpressure"""
193
202
 
203
+ pq_strict_ordering: Annotated[
204
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
205
+ ] = True
206
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
207
+
208
+ pq_rate_per_sec: Annotated[
209
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
210
+ ] = 0
211
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
212
+
213
+ pq_mode: Annotated[
214
+ Annotated[
215
+ Optional[OutputStatsdMode], PlainValidator(validate_open_enum(False))
216
+ ],
217
+ pydantic.Field(alias="pqMode"),
218
+ ] = OutputStatsdMode.ERROR
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
+ pq_max_buffer_size: Annotated[
222
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
223
+ ] = 42
224
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
225
+
226
+ pq_max_backpressure_sec: Annotated[
227
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
228
+ ] = 30
229
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
230
+
194
231
  pq_max_file_size: Annotated[
195
232
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
196
233
  ] = "1 MB"
@@ -221,14 +258,51 @@ class OutputStatsd(BaseModel):
221
258
  ] = OutputStatsdQueueFullBehavior.BLOCK
222
259
  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."""
223
260
 
224
- pq_mode: Annotated[
225
- Annotated[
226
- Optional[OutputStatsdMode], PlainValidator(validate_open_enum(False))
227
- ],
228
- pydantic.Field(alias="pqMode"),
229
- ] = OutputStatsdMode.ERROR
230
- 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."""
231
-
232
261
  pq_controls: Annotated[
233
262
  Optional[OutputStatsdPqControls], pydantic.Field(alias="pqControls")
234
263
  ] = None
264
+
265
+ @field_serializer("protocol")
266
+ def serialize_protocol(self, value):
267
+ if isinstance(value, str):
268
+ try:
269
+ return models.OutputStatsdDestinationProtocol(value)
270
+ except ValueError:
271
+ return value
272
+ return value
273
+
274
+ @field_serializer("on_backpressure")
275
+ def serialize_on_backpressure(self, value):
276
+ if isinstance(value, str):
277
+ try:
278
+ return models.OutputStatsdBackpressureBehavior(value)
279
+ except ValueError:
280
+ return value
281
+ return value
282
+
283
+ @field_serializer("pq_mode")
284
+ def serialize_pq_mode(self, value):
285
+ if isinstance(value, str):
286
+ try:
287
+ return models.OutputStatsdMode(value)
288
+ except ValueError:
289
+ return value
290
+ return value
291
+
292
+ @field_serializer("pq_compress")
293
+ def serialize_pq_compress(self, value):
294
+ if isinstance(value, str):
295
+ try:
296
+ return models.OutputStatsdCompression(value)
297
+ except ValueError:
298
+ return value
299
+ return value
300
+
301
+ @field_serializer("pq_on_backpressure")
302
+ def serialize_pq_on_backpressure(self, value):
303
+ if isinstance(value, str):
304
+ try:
305
+ return models.OutputStatsdQueueFullBehavior(value)
306
+ except ValueError:
307
+ return value
308
+ 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
@@ -35,6 +36,17 @@ class OutputStatsdExtBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMet
35
36
  QUEUE = "queue"
36
37
 
37
38
 
39
+ class OutputStatsdExtMode(str, Enum, metaclass=utils.OpenEnumMeta):
40
+ 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."""
41
+
42
+ # Error
43
+ ERROR = "error"
44
+ # Backpressure
45
+ ALWAYS = "always"
46
+ # Always On
47
+ BACKPRESSURE = "backpressure"
48
+
49
+
38
50
  class OutputStatsdExtCompression(str, Enum, metaclass=utils.OpenEnumMeta):
39
51
  r"""Codec to use to compress the persisted data"""
40
52
 
@@ -53,17 +65,6 @@ class OutputStatsdExtQueueFullBehavior(str, Enum, metaclass=utils.OpenEnumMeta):
53
65
  DROP = "drop"
54
66
 
55
67
 
56
- class OutputStatsdExtMode(str, Enum, metaclass=utils.OpenEnumMeta):
57
- 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."""
58
-
59
- # Error
60
- ERROR = "error"
61
- # Backpressure
62
- BACKPRESSURE = "backpressure"
63
- # Always On
64
- ALWAYS = "always"
65
-
66
-
67
68
  class OutputStatsdExtPqControlsTypedDict(TypedDict):
68
69
  pass
69
70
 
@@ -105,6 +106,16 @@ class OutputStatsdExtTypedDict(TypedDict):
105
106
  r"""Amount of time (milliseconds) to wait for a write to complete before assuming connection is dead"""
106
107
  on_backpressure: NotRequired[OutputStatsdExtBackpressureBehavior]
107
108
  r"""How to handle events when all receivers are exerting backpressure"""
109
+ pq_strict_ordering: NotRequired[bool]
110
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
111
+ pq_rate_per_sec: NotRequired[float]
112
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
113
+ pq_mode: NotRequired[OutputStatsdExtMode]
114
+ 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."""
115
+ pq_max_buffer_size: NotRequired[float]
116
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
117
+ pq_max_backpressure_sec: NotRequired[float]
118
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
108
119
  pq_max_file_size: NotRequired[str]
109
120
  r"""The maximum size to store in each queue file before closing and optionally compressing (KB, MB, etc.)"""
110
121
  pq_max_size: NotRequired[str]
@@ -115,8 +126,6 @@ class OutputStatsdExtTypedDict(TypedDict):
115
126
  r"""Codec to use to compress the persisted data"""
116
127
  pq_on_backpressure: NotRequired[OutputStatsdExtQueueFullBehavior]
117
128
  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."""
118
- pq_mode: NotRequired[OutputStatsdExtMode]
119
- 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."""
120
129
  pq_controls: NotRequired[OutputStatsdExtPqControlsTypedDict]
121
130
 
122
131
 
@@ -191,6 +200,34 @@ class OutputStatsdExt(BaseModel):
191
200
  ] = OutputStatsdExtBackpressureBehavior.BLOCK
192
201
  r"""How to handle events when all receivers are exerting backpressure"""
193
202
 
203
+ pq_strict_ordering: Annotated[
204
+ Optional[bool], pydantic.Field(alias="pqStrictOrdering")
205
+ ] = True
206
+ r"""Use FIFO (first in, first out) processing. Disable to forward new events to receivers before queue is flushed."""
207
+
208
+ pq_rate_per_sec: Annotated[
209
+ Optional[float], pydantic.Field(alias="pqRatePerSec")
210
+ ] = 0
211
+ r"""Throttling rate (in events per second) to impose while writing to Destinations from PQ. Defaults to 0, which disables throttling."""
212
+
213
+ pq_mode: Annotated[
214
+ Annotated[
215
+ Optional[OutputStatsdExtMode], PlainValidator(validate_open_enum(False))
216
+ ],
217
+ pydantic.Field(alias="pqMode"),
218
+ ] = OutputStatsdExtMode.ERROR
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
+ pq_max_buffer_size: Annotated[
222
+ Optional[float], pydantic.Field(alias="pqMaxBufferSize")
223
+ ] = 42
224
+ r"""The maximum number of events to hold in memory before writing the events to disk"""
225
+
226
+ pq_max_backpressure_sec: Annotated[
227
+ Optional[float], pydantic.Field(alias="pqMaxBackpressureSec")
228
+ ] = 30
229
+ r"""How long (in seconds) to wait for backpressure to resolve before engaging the queue"""
230
+
194
231
  pq_max_file_size: Annotated[
195
232
  Optional[str], pydantic.Field(alias="pqMaxFileSize")
196
233
  ] = "1 MB"
@@ -222,14 +259,51 @@ class OutputStatsdExt(BaseModel):
222
259
  ] = OutputStatsdExtQueueFullBehavior.BLOCK
223
260
  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."""
224
261
 
225
- pq_mode: Annotated[
226
- Annotated[
227
- Optional[OutputStatsdExtMode], PlainValidator(validate_open_enum(False))
228
- ],
229
- pydantic.Field(alias="pqMode"),
230
- ] = OutputStatsdExtMode.ERROR
231
- 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."""
232
-
233
262
  pq_controls: Annotated[
234
263
  Optional[OutputStatsdExtPqControls], pydantic.Field(alias="pqControls")
235
264
  ] = None
265
+
266
+ @field_serializer("protocol")
267
+ def serialize_protocol(self, value):
268
+ if isinstance(value, str):
269
+ try:
270
+ return models.OutputStatsdExtDestinationProtocol(value)
271
+ except ValueError:
272
+ return value
273
+ return value
274
+
275
+ @field_serializer("on_backpressure")
276
+ def serialize_on_backpressure(self, value):
277
+ if isinstance(value, str):
278
+ try:
279
+ return models.OutputStatsdExtBackpressureBehavior(value)
280
+ except ValueError:
281
+ return value
282
+ return value
283
+
284
+ @field_serializer("pq_mode")
285
+ def serialize_pq_mode(self, value):
286
+ if isinstance(value, str):
287
+ try:
288
+ return models.OutputStatsdExtMode(value)
289
+ except ValueError:
290
+ return value
291
+ return value
292
+
293
+ @field_serializer("pq_compress")
294
+ def serialize_pq_compress(self, value):
295
+ if isinstance(value, str):
296
+ try:
297
+ return models.OutputStatsdExtCompression(value)
298
+ except ValueError:
299
+ return value
300
+ return value
301
+
302
+ @field_serializer("pq_on_backpressure")
303
+ def serialize_pq_on_backpressure(self, value):
304
+ if isinstance(value, str):
305
+ try:
306
+ return models.OutputStatsdExtQueueFullBehavior(value)
307
+ except ValueError:
308
+ return value
309
+ return value