cribl-control-plane 0.0.16__py3-none-any.whl → 0.0.18__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.
- cribl_control_plane/_version.py +3 -3
- cribl_control_plane/errors/healthstatus_error.py +2 -8
- cribl_control_plane/models/__init__.py +4365 -4124
- cribl_control_plane/models/createinputop.py +1734 -2771
- cribl_control_plane/models/createoutputop.py +2153 -4314
- cribl_control_plane/models/createversioncommitop.py +24 -0
- cribl_control_plane/models/createversionpushop.py +23 -0
- cribl_control_plane/models/createversionrevertop.py +47 -0
- cribl_control_plane/models/createversionsyncop.py +23 -0
- cribl_control_plane/models/createversionundoop.py +37 -0
- cribl_control_plane/models/getversionbranchop.py +23 -0
- cribl_control_plane/models/getversioncountop.py +47 -0
- cribl_control_plane/models/getversioncurrentbranchop.py +23 -0
- cribl_control_plane/models/getversiondiffop.py +63 -0
- cribl_control_plane/models/getversionfilesop.py +48 -0
- cribl_control_plane/models/getversioninfoop.py +24 -0
- cribl_control_plane/models/getversionshowop.py +63 -0
- cribl_control_plane/models/getversionstatusop.py +38 -0
- cribl_control_plane/models/gitcommitparams.py +23 -0
- cribl_control_plane/models/gitcommitsummary.py +68 -0
- cribl_control_plane/models/gitfile.py +20 -0
- cribl_control_plane/models/gitfilesresponse.py +22 -0
- cribl_control_plane/models/gitinfo.py +23 -0
- cribl_control_plane/models/gitrevertparams.py +20 -0
- cribl_control_plane/models/gitrevertresult.py +48 -0
- cribl_control_plane/models/gitstatusresult.py +73 -0
- cribl_control_plane/models/healthstatus.py +4 -7
- cribl_control_plane/models/inputappscope.py +16 -36
- cribl_control_plane/models/inputazureblob.py +8 -19
- cribl_control_plane/models/inputcollection.py +6 -15
- cribl_control_plane/models/inputconfluentcloud.py +20 -45
- cribl_control_plane/models/inputcribl.py +6 -13
- cribl_control_plane/models/inputcriblhttp.py +10 -27
- cribl_control_plane/models/inputcribllakehttp.py +12 -26
- cribl_control_plane/models/inputcriblmetrics.py +6 -14
- cribl_control_plane/models/inputcribltcp.py +10 -27
- cribl_control_plane/models/inputcrowdstrike.py +12 -28
- cribl_control_plane/models/inputdatadogagent.py +10 -28
- cribl_control_plane/models/inputdatagen.py +6 -13
- cribl_control_plane/models/inputedgeprometheus.py +31 -64
- cribl_control_plane/models/inputelastic.py +16 -44
- cribl_control_plane/models/inputeventhub.py +8 -19
- cribl_control_plane/models/inputexec.py +8 -16
- cribl_control_plane/models/inputfile.py +8 -17
- cribl_control_plane/models/inputfirehose.py +10 -27
- cribl_control_plane/models/inputgooglepubsub.py +8 -23
- cribl_control_plane/models/inputgrafana_union.py +35 -81
- cribl_control_plane/models/inputhttp.py +10 -27
- cribl_control_plane/models/inputhttpraw.py +10 -27
- cribl_control_plane/models/inputjournalfiles.py +6 -16
- cribl_control_plane/models/inputkafka.py +16 -45
- cribl_control_plane/models/inputkinesis.py +16 -42
- cribl_control_plane/models/inputkubeevents.py +6 -13
- cribl_control_plane/models/inputkubelogs.py +10 -18
- cribl_control_plane/models/inputkubemetrics.py +10 -18
- cribl_control_plane/models/inputloki.py +12 -33
- cribl_control_plane/models/inputmetrics.py +10 -25
- cribl_control_plane/models/inputmodeldriventelemetry.py +12 -32
- cribl_control_plane/models/inputmsk.py +18 -52
- cribl_control_plane/models/inputnetflow.py +6 -15
- cribl_control_plane/models/inputoffice365mgmt.py +16 -37
- cribl_control_plane/models/inputoffice365msgtrace.py +18 -39
- cribl_control_plane/models/inputoffice365service.py +18 -39
- cribl_control_plane/models/inputopentelemetry.py +18 -42
- cribl_control_plane/models/inputprometheus.py +20 -54
- cribl_control_plane/models/inputprometheusrw.py +12 -34
- cribl_control_plane/models/inputrawudp.py +6 -15
- cribl_control_plane/models/inputs3.py +10 -23
- cribl_control_plane/models/inputs3inventory.py +12 -28
- cribl_control_plane/models/inputsecuritylake.py +12 -29
- cribl_control_plane/models/inputsnmp.py +8 -20
- cribl_control_plane/models/inputsplunk.py +14 -37
- cribl_control_plane/models/inputsplunkhec.py +12 -33
- cribl_control_plane/models/inputsplunksearch.py +16 -37
- cribl_control_plane/models/inputsqs.py +12 -31
- cribl_control_plane/models/inputsyslog_union.py +29 -53
- cribl_control_plane/models/inputsystemmetrics.py +26 -50
- cribl_control_plane/models/inputsystemstate.py +10 -18
- cribl_control_plane/models/inputtcp.py +12 -33
- cribl_control_plane/models/inputtcpjson.py +12 -33
- cribl_control_plane/models/inputwef.py +20 -45
- cribl_control_plane/models/inputwindowsmetrics.py +26 -46
- cribl_control_plane/models/inputwineventlogs.py +12 -22
- cribl_control_plane/models/inputwiz.py +10 -25
- cribl_control_plane/models/inputzscalerhec.py +12 -33
- cribl_control_plane/models/output.py +3 -6
- cribl_control_plane/models/outputazureblob.py +20 -52
- cribl_control_plane/models/outputazuredataexplorer.py +30 -77
- cribl_control_plane/models/outputazureeventhub.py +20 -44
- cribl_control_plane/models/outputazurelogs.py +14 -37
- cribl_control_plane/models/outputclickhouse.py +22 -59
- cribl_control_plane/models/outputcloudwatch.py +12 -33
- cribl_control_plane/models/outputconfluentcloud.py +32 -75
- cribl_control_plane/models/outputcriblhttp.py +18 -46
- cribl_control_plane/models/outputcribllake.py +18 -48
- cribl_control_plane/models/outputcribltcp.py +20 -47
- cribl_control_plane/models/outputcrowdstrikenextgensiem.py +16 -54
- cribl_control_plane/models/outputdatadog.py +22 -50
- cribl_control_plane/models/outputdataset.py +20 -48
- cribl_control_plane/models/outputdefault.py +2 -5
- cribl_control_plane/models/outputdevnull.py +2 -5
- cribl_control_plane/models/outputdiskspool.py +4 -9
- cribl_control_plane/models/outputdls3.py +26 -72
- cribl_control_plane/models/outputdynatracehttp.py +22 -57
- cribl_control_plane/models/outputdynatraceotlp.py +24 -59
- cribl_control_plane/models/outputelastic.py +20 -45
- cribl_control_plane/models/outputelasticcloud.py +14 -40
- cribl_control_plane/models/outputexabeam.py +12 -33
- cribl_control_plane/models/outputfilesystem.py +16 -41
- cribl_control_plane/models/outputgooglechronicle.py +18 -54
- cribl_control_plane/models/outputgooglecloudlogging.py +16 -46
- cribl_control_plane/models/outputgooglecloudstorage.py +26 -71
- cribl_control_plane/models/outputgooglepubsub.py +16 -39
- cribl_control_plane/models/{outputgrafanacloud_union.py → outputgrafanacloud.py} +49 -110
- cribl_control_plane/models/outputgraphite.py +16 -35
- cribl_control_plane/models/outputhoneycomb.py +14 -37
- cribl_control_plane/models/outputhumiohec.py +18 -47
- cribl_control_plane/models/outputinfluxdb.py +18 -44
- cribl_control_plane/models/outputkafka.py +28 -73
- cribl_control_plane/models/outputkinesis.py +18 -44
- cribl_control_plane/models/outputloki.py +18 -43
- cribl_control_plane/models/outputminio.py +26 -69
- cribl_control_plane/models/outputmsk.py +30 -81
- cribl_control_plane/models/outputnetflow.py +2 -5
- cribl_control_plane/models/outputnewrelic.py +20 -45
- cribl_control_plane/models/outputnewrelicevents.py +16 -45
- cribl_control_plane/models/outputopentelemetry.py +28 -69
- cribl_control_plane/models/outputprometheus.py +14 -37
- cribl_control_plane/models/outputring.py +10 -21
- cribl_control_plane/models/outputrouter.py +2 -5
- cribl_control_plane/models/outputs3.py +28 -72
- cribl_control_plane/models/outputsecuritylake.py +20 -56
- cribl_control_plane/models/outputsentinel.py +20 -49
- cribl_control_plane/models/outputsentineloneaisiem.py +20 -54
- cribl_control_plane/models/outputservicenow.py +26 -64
- cribl_control_plane/models/outputsignalfx.py +16 -39
- cribl_control_plane/models/outputsnmp.py +2 -5
- cribl_control_plane/models/outputsns.py +16 -40
- cribl_control_plane/models/outputsplunk.py +26 -64
- cribl_control_plane/models/outputsplunkhec.py +14 -37
- cribl_control_plane/models/outputsplunklb.py +36 -83
- cribl_control_plane/models/outputsqs.py +18 -45
- cribl_control_plane/models/outputstatsd.py +16 -34
- cribl_control_plane/models/outputstatsdext.py +14 -33
- cribl_control_plane/models/outputsumologic.py +14 -37
- cribl_control_plane/models/outputsyslog.py +26 -60
- cribl_control_plane/models/outputtcpjson.py +22 -54
- cribl_control_plane/models/outputwavefront.py +14 -37
- cribl_control_plane/models/outputwebhook.py +24 -60
- cribl_control_plane/models/outputxsiam.py +16 -37
- cribl_control_plane/sdk.py +4 -0
- cribl_control_plane/versioning.py +2309 -0
- {cribl_control_plane-0.0.16.dist-info → cribl_control_plane-0.0.18.dist-info}/METADATA +18 -2
- cribl_control_plane-0.0.18.dist-info/RECORD +237 -0
- cribl_control_plane-0.0.16.dist-info/RECORD +0 -215
- {cribl_control_plane-0.0.16.dist-info → cribl_control_plane-0.0.18.dist-info}/WHEEL +0 -0
|
@@ -1,21 +1,18 @@
|
|
|
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
|
|
5
4
|
from cribl_control_plane.types import BaseModel
|
|
6
|
-
from cribl_control_plane.utils import validate_open_enum
|
|
7
5
|
from enum import Enum
|
|
8
6
|
import pydantic
|
|
9
|
-
from pydantic.functional_validators import PlainValidator
|
|
10
7
|
from typing import List, Optional
|
|
11
8
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
9
|
|
|
13
10
|
|
|
14
|
-
class OutputWebhookType(str, Enum
|
|
11
|
+
class OutputWebhookType(str, Enum):
|
|
15
12
|
WEBHOOK = "webhook"
|
|
16
13
|
|
|
17
14
|
|
|
18
|
-
class OutputWebhookMethod(str, Enum
|
|
15
|
+
class OutputWebhookMethod(str, Enum):
|
|
19
16
|
r"""The method to use when sending events"""
|
|
20
17
|
|
|
21
18
|
POST = "POST"
|
|
@@ -23,7 +20,7 @@ class OutputWebhookMethod(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
23
20
|
PATCH = "PATCH"
|
|
24
21
|
|
|
25
22
|
|
|
26
|
-
class OutputWebhookFormat(str, Enum
|
|
23
|
+
class OutputWebhookFormat(str, Enum):
|
|
27
24
|
r"""How to format events before sending out"""
|
|
28
25
|
|
|
29
26
|
NDJSON = "ndjson"
|
|
@@ -43,7 +40,7 @@ class OutputWebhookExtraHTTPHeader(BaseModel):
|
|
|
43
40
|
name: Optional[str] = None
|
|
44
41
|
|
|
45
42
|
|
|
46
|
-
class OutputWebhookFailedRequestLoggingMode(str, Enum
|
|
43
|
+
class OutputWebhookFailedRequestLoggingMode(str, Enum):
|
|
47
44
|
r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
|
|
48
45
|
|
|
49
46
|
PAYLOAD = "payload"
|
|
@@ -105,7 +102,7 @@ class OutputWebhookTimeoutRetrySettings(BaseModel):
|
|
|
105
102
|
r"""The maximum backoff interval, in milliseconds, Cribl Stream should apply. Default (and minimum) is 10,000 ms (10 seconds); maximum is 180,000 ms (180 seconds)."""
|
|
106
103
|
|
|
107
104
|
|
|
108
|
-
class OutputWebhookBackpressureBehavior(str, Enum
|
|
105
|
+
class OutputWebhookBackpressureBehavior(str, Enum):
|
|
109
106
|
r"""How to handle events when all receivers are exerting backpressure"""
|
|
110
107
|
|
|
111
108
|
BLOCK = "block"
|
|
@@ -113,7 +110,7 @@ class OutputWebhookBackpressureBehavior(str, Enum, metaclass=utils.OpenEnumMeta)
|
|
|
113
110
|
QUEUE = "queue"
|
|
114
111
|
|
|
115
112
|
|
|
116
|
-
class OutputWebhookAuthenticationType(str, Enum
|
|
113
|
+
class OutputWebhookAuthenticationType(str, Enum):
|
|
117
114
|
r"""Authentication method to use for the HTTP request"""
|
|
118
115
|
|
|
119
116
|
NONE = "none"
|
|
@@ -124,14 +121,14 @@ class OutputWebhookAuthenticationType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
124
121
|
OAUTH = "oauth"
|
|
125
122
|
|
|
126
123
|
|
|
127
|
-
class OutputWebhookMinimumTLSVersion(str, Enum
|
|
124
|
+
class OutputWebhookMinimumTLSVersion(str, Enum):
|
|
128
125
|
TL_SV1 = "TLSv1"
|
|
129
126
|
TL_SV1_1 = "TLSv1.1"
|
|
130
127
|
TL_SV1_2 = "TLSv1.2"
|
|
131
128
|
TL_SV1_3 = "TLSv1.3"
|
|
132
129
|
|
|
133
130
|
|
|
134
|
-
class OutputWebhookMaximumTLSVersion(str, Enum
|
|
131
|
+
class OutputWebhookMaximumTLSVersion(str, Enum):
|
|
135
132
|
TL_SV1 = "TLSv1"
|
|
136
133
|
TL_SV1_1 = "TLSv1.1"
|
|
137
134
|
TL_SV1_2 = "TLSv1.2"
|
|
@@ -180,37 +177,29 @@ class OutputWebhookTLSSettingsClientSide(BaseModel):
|
|
|
180
177
|
r"""Passphrase to use to decrypt private key"""
|
|
181
178
|
|
|
182
179
|
min_version: Annotated[
|
|
183
|
-
|
|
184
|
-
Optional[OutputWebhookMinimumTLSVersion],
|
|
185
|
-
PlainValidator(validate_open_enum(False)),
|
|
186
|
-
],
|
|
187
|
-
pydantic.Field(alias="minVersion"),
|
|
180
|
+
Optional[OutputWebhookMinimumTLSVersion], pydantic.Field(alias="minVersion")
|
|
188
181
|
] = None
|
|
189
182
|
|
|
190
183
|
max_version: Annotated[
|
|
191
|
-
|
|
192
|
-
Optional[OutputWebhookMaximumTLSVersion],
|
|
193
|
-
PlainValidator(validate_open_enum(False)),
|
|
194
|
-
],
|
|
195
|
-
pydantic.Field(alias="maxVersion"),
|
|
184
|
+
Optional[OutputWebhookMaximumTLSVersion], pydantic.Field(alias="maxVersion")
|
|
196
185
|
] = None
|
|
197
186
|
|
|
198
187
|
|
|
199
|
-
class OutputWebhookCompression(str, Enum
|
|
188
|
+
class OutputWebhookCompression(str, Enum):
|
|
200
189
|
r"""Codec to use to compress the persisted data"""
|
|
201
190
|
|
|
202
191
|
NONE = "none"
|
|
203
192
|
GZIP = "gzip"
|
|
204
193
|
|
|
205
194
|
|
|
206
|
-
class OutputWebhookQueueFullBehavior(str, Enum
|
|
195
|
+
class OutputWebhookQueueFullBehavior(str, Enum):
|
|
207
196
|
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."""
|
|
208
197
|
|
|
209
198
|
BLOCK = "block"
|
|
210
199
|
DROP = "drop"
|
|
211
200
|
|
|
212
201
|
|
|
213
|
-
class OutputWebhookMode(str, Enum
|
|
202
|
+
class OutputWebhookMode(str, Enum):
|
|
214
203
|
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
204
|
|
|
216
205
|
ERROR = "error"
|
|
@@ -399,7 +388,7 @@ class OutputWebhook(BaseModel):
|
|
|
399
388
|
id: str
|
|
400
389
|
r"""Unique ID for this output"""
|
|
401
390
|
|
|
402
|
-
type:
|
|
391
|
+
type: OutputWebhookType
|
|
403
392
|
|
|
404
393
|
pipeline: Optional[str] = None
|
|
405
394
|
r"""Pipeline to process data before sending out to this output"""
|
|
@@ -415,16 +404,11 @@ class OutputWebhook(BaseModel):
|
|
|
415
404
|
streamtags: Optional[List[str]] = None
|
|
416
405
|
r"""Tags for filtering and grouping in @{product}"""
|
|
417
406
|
|
|
418
|
-
method:
|
|
419
|
-
Optional[OutputWebhookMethod], PlainValidator(validate_open_enum(False))
|
|
420
|
-
] = OutputWebhookMethod.POST
|
|
407
|
+
method: Optional[OutputWebhookMethod] = OutputWebhookMethod.POST
|
|
421
408
|
r"""The method to use when sending events"""
|
|
422
409
|
|
|
423
410
|
format_: Annotated[
|
|
424
|
-
|
|
425
|
-
Optional[OutputWebhookFormat], PlainValidator(validate_open_enum(False))
|
|
426
|
-
],
|
|
427
|
-
pydantic.Field(alias="format"),
|
|
411
|
+
Optional[OutputWebhookFormat], pydantic.Field(alias="format")
|
|
428
412
|
] = OutputWebhookFormat.NDJSON
|
|
429
413
|
r"""How to format events before sending out"""
|
|
430
414
|
|
|
@@ -475,10 +459,7 @@ class OutputWebhook(BaseModel):
|
|
|
475
459
|
r"""Enable round-robin DNS lookup. When a DNS server returns multiple addresses, @{product} will cycle through them in the order returned. For optimal performance, consider enabling this setting for non-load balanced destinations."""
|
|
476
460
|
|
|
477
461
|
failed_request_logging_mode: Annotated[
|
|
478
|
-
|
|
479
|
-
Optional[OutputWebhookFailedRequestLoggingMode],
|
|
480
|
-
PlainValidator(validate_open_enum(False)),
|
|
481
|
-
],
|
|
462
|
+
Optional[OutputWebhookFailedRequestLoggingMode],
|
|
482
463
|
pydantic.Field(alias="failedRequestLoggingMode"),
|
|
483
464
|
] = OutputWebhookFailedRequestLoggingMode.NONE
|
|
484
465
|
r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
|
|
@@ -505,20 +486,13 @@ class OutputWebhook(BaseModel):
|
|
|
505
486
|
r"""Honor any Retry-After header that specifies a delay (in seconds) no longer than 180 seconds after the retry request. @{product} limits the delay to 180 seconds, even if the Retry-After header specifies a longer delay. When enabled, takes precedence over user-configured retry options. When disabled, all Retry-After headers are ignored."""
|
|
506
487
|
|
|
507
488
|
on_backpressure: Annotated[
|
|
508
|
-
|
|
509
|
-
Optional[OutputWebhookBackpressureBehavior],
|
|
510
|
-
PlainValidator(validate_open_enum(False)),
|
|
511
|
-
],
|
|
489
|
+
Optional[OutputWebhookBackpressureBehavior],
|
|
512
490
|
pydantic.Field(alias="onBackpressure"),
|
|
513
491
|
] = OutputWebhookBackpressureBehavior.BLOCK
|
|
514
492
|
r"""How to handle events when all receivers are exerting backpressure"""
|
|
515
493
|
|
|
516
494
|
auth_type: Annotated[
|
|
517
|
-
|
|
518
|
-
Optional[OutputWebhookAuthenticationType],
|
|
519
|
-
PlainValidator(validate_open_enum(False)),
|
|
520
|
-
],
|
|
521
|
-
pydantic.Field(alias="authType"),
|
|
495
|
+
Optional[OutputWebhookAuthenticationType], pydantic.Field(alias="authType")
|
|
522
496
|
] = OutputWebhookAuthenticationType.NONE
|
|
523
497
|
r"""Authentication method to use for the HTTP request"""
|
|
524
498
|
|
|
@@ -590,29 +564,19 @@ class OutputWebhook(BaseModel):
|
|
|
590
564
|
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
|
|
591
565
|
|
|
592
566
|
pq_compress: Annotated[
|
|
593
|
-
|
|
594
|
-
Optional[OutputWebhookCompression],
|
|
595
|
-
PlainValidator(validate_open_enum(False)),
|
|
596
|
-
],
|
|
597
|
-
pydantic.Field(alias="pqCompress"),
|
|
567
|
+
Optional[OutputWebhookCompression], pydantic.Field(alias="pqCompress")
|
|
598
568
|
] = OutputWebhookCompression.NONE
|
|
599
569
|
r"""Codec to use to compress the persisted data"""
|
|
600
570
|
|
|
601
571
|
pq_on_backpressure: Annotated[
|
|
602
|
-
|
|
603
|
-
Optional[OutputWebhookQueueFullBehavior],
|
|
604
|
-
PlainValidator(validate_open_enum(False)),
|
|
605
|
-
],
|
|
572
|
+
Optional[OutputWebhookQueueFullBehavior],
|
|
606
573
|
pydantic.Field(alias="pqOnBackpressure"),
|
|
607
574
|
] = OutputWebhookQueueFullBehavior.BLOCK
|
|
608
575
|
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."""
|
|
609
576
|
|
|
610
|
-
pq_mode: Annotated[
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
],
|
|
614
|
-
pydantic.Field(alias="pqMode"),
|
|
615
|
-
] = OutputWebhookMode.ERROR
|
|
577
|
+
pq_mode: Annotated[Optional[OutputWebhookMode], pydantic.Field(alias="pqMode")] = (
|
|
578
|
+
OutputWebhookMode.ERROR
|
|
579
|
+
)
|
|
616
580
|
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."""
|
|
617
581
|
|
|
618
582
|
pq_controls: Annotated[
|
|
@@ -1,17 +1,14 @@
|
|
|
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
|
|
5
4
|
from cribl_control_plane.types import BaseModel
|
|
6
|
-
from cribl_control_plane.utils import validate_open_enum
|
|
7
5
|
from enum import Enum
|
|
8
6
|
import pydantic
|
|
9
|
-
from pydantic.functional_validators import PlainValidator
|
|
10
7
|
from typing import Any, List, Optional
|
|
11
8
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
9
|
|
|
13
10
|
|
|
14
|
-
class OutputXsiamType(str, Enum
|
|
11
|
+
class OutputXsiamType(str, Enum):
|
|
15
12
|
XSIAM = "xsiam"
|
|
16
13
|
|
|
17
14
|
|
|
@@ -26,7 +23,7 @@ class OutputXsiamExtraHTTPHeader(BaseModel):
|
|
|
26
23
|
name: Optional[str] = None
|
|
27
24
|
|
|
28
25
|
|
|
29
|
-
class OutputXsiamFailedRequestLoggingMode(str, Enum
|
|
26
|
+
class OutputXsiamFailedRequestLoggingMode(str, Enum):
|
|
30
27
|
r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
|
|
31
28
|
|
|
32
29
|
PAYLOAD = "payload"
|
|
@@ -34,7 +31,7 @@ class OutputXsiamFailedRequestLoggingMode(str, Enum, metaclass=utils.OpenEnumMet
|
|
|
34
31
|
NONE = "none"
|
|
35
32
|
|
|
36
33
|
|
|
37
|
-
class OutputXsiamAuthenticationMethod(str, Enum
|
|
34
|
+
class OutputXsiamAuthenticationMethod(str, Enum):
|
|
38
35
|
r"""Enter a token directly, or provide a secret referencing a token"""
|
|
39
36
|
|
|
40
37
|
TOKEN = "token"
|
|
@@ -95,7 +92,7 @@ class OutputXsiamTimeoutRetrySettings(BaseModel):
|
|
|
95
92
|
r"""The maximum backoff interval, in milliseconds, Cribl Stream should apply. Default (and minimum) is 10,000 ms (10 seconds); maximum is 180,000 ms (180 seconds)."""
|
|
96
93
|
|
|
97
94
|
|
|
98
|
-
class OutputXsiamBackpressureBehavior(str, Enum
|
|
95
|
+
class OutputXsiamBackpressureBehavior(str, Enum):
|
|
99
96
|
r"""How to handle events when all receivers are exerting backpressure"""
|
|
100
97
|
|
|
101
98
|
BLOCK = "block"
|
|
@@ -116,21 +113,21 @@ class OutputXsiamURL(BaseModel):
|
|
|
116
113
|
r"""Assign a weight (>0) to each endpoint to indicate its traffic-handling capability"""
|
|
117
114
|
|
|
118
115
|
|
|
119
|
-
class OutputXsiamCompression(str, Enum
|
|
116
|
+
class OutputXsiamCompression(str, Enum):
|
|
120
117
|
r"""Codec to use to compress the persisted data"""
|
|
121
118
|
|
|
122
119
|
NONE = "none"
|
|
123
120
|
GZIP = "gzip"
|
|
124
121
|
|
|
125
122
|
|
|
126
|
-
class OutputXsiamQueueFullBehavior(str, Enum
|
|
123
|
+
class OutputXsiamQueueFullBehavior(str, Enum):
|
|
127
124
|
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."""
|
|
128
125
|
|
|
129
126
|
BLOCK = "block"
|
|
130
127
|
DROP = "drop"
|
|
131
128
|
|
|
132
129
|
|
|
133
|
-
class OutputXsiamMode(str, Enum
|
|
130
|
+
class OutputXsiamMode(str, Enum):
|
|
134
131
|
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."""
|
|
135
132
|
|
|
136
133
|
ERROR = "error"
|
|
@@ -229,7 +226,7 @@ class OutputXsiam(BaseModel):
|
|
|
229
226
|
id: str
|
|
230
227
|
r"""Unique ID for this output"""
|
|
231
228
|
|
|
232
|
-
type:
|
|
229
|
+
type: OutputXsiamType
|
|
233
230
|
|
|
234
231
|
pipeline: Optional[str] = None
|
|
235
232
|
r"""Pipeline to process data before sending out to this output"""
|
|
@@ -286,10 +283,7 @@ class OutputXsiam(BaseModel):
|
|
|
286
283
|
r"""Headers to add to all events"""
|
|
287
284
|
|
|
288
285
|
failed_request_logging_mode: Annotated[
|
|
289
|
-
|
|
290
|
-
Optional[OutputXsiamFailedRequestLoggingMode],
|
|
291
|
-
PlainValidator(validate_open_enum(False)),
|
|
292
|
-
],
|
|
286
|
+
Optional[OutputXsiamFailedRequestLoggingMode],
|
|
293
287
|
pydantic.Field(alias="failedRequestLoggingMode"),
|
|
294
288
|
] = OutputXsiamFailedRequestLoggingMode.NONE
|
|
295
289
|
r"""Data to log when a request fails. All headers are redacted by default, unless listed as safe headers below."""
|
|
@@ -300,11 +294,7 @@ class OutputXsiam(BaseModel):
|
|
|
300
294
|
r"""List of headers that are safe to log in plain text"""
|
|
301
295
|
|
|
302
296
|
auth_type: Annotated[
|
|
303
|
-
|
|
304
|
-
Optional[OutputXsiamAuthenticationMethod],
|
|
305
|
-
PlainValidator(validate_open_enum(False)),
|
|
306
|
-
],
|
|
307
|
-
pydantic.Field(alias="authType"),
|
|
297
|
+
Optional[OutputXsiamAuthenticationMethod], pydantic.Field(alias="authType")
|
|
308
298
|
] = OutputXsiamAuthenticationMethod.TOKEN
|
|
309
299
|
r"""Enter a token directly, or provide a secret referencing a token"""
|
|
310
300
|
|
|
@@ -330,10 +320,7 @@ class OutputXsiam(BaseModel):
|
|
|
330
320
|
r"""Maximum number of requests to limit to per second"""
|
|
331
321
|
|
|
332
322
|
on_backpressure: Annotated[
|
|
333
|
-
|
|
334
|
-
Optional[OutputXsiamBackpressureBehavior],
|
|
335
|
-
PlainValidator(validate_open_enum(False)),
|
|
336
|
-
],
|
|
323
|
+
Optional[OutputXsiamBackpressureBehavior],
|
|
337
324
|
pydantic.Field(alias="onBackpressure"),
|
|
338
325
|
] = OutputXsiamBackpressureBehavior.BLOCK
|
|
339
326
|
r"""How to handle events when all receivers are exerting backpressure"""
|
|
@@ -388,26 +375,18 @@ class OutputXsiam(BaseModel):
|
|
|
388
375
|
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/<output-id>."""
|
|
389
376
|
|
|
390
377
|
pq_compress: Annotated[
|
|
391
|
-
|
|
392
|
-
Optional[OutputXsiamCompression], PlainValidator(validate_open_enum(False))
|
|
393
|
-
],
|
|
394
|
-
pydantic.Field(alias="pqCompress"),
|
|
378
|
+
Optional[OutputXsiamCompression], pydantic.Field(alias="pqCompress")
|
|
395
379
|
] = OutputXsiamCompression.NONE
|
|
396
380
|
r"""Codec to use to compress the persisted data"""
|
|
397
381
|
|
|
398
382
|
pq_on_backpressure: Annotated[
|
|
399
|
-
|
|
400
|
-
Optional[OutputXsiamQueueFullBehavior],
|
|
401
|
-
PlainValidator(validate_open_enum(False)),
|
|
402
|
-
],
|
|
403
|
-
pydantic.Field(alias="pqOnBackpressure"),
|
|
383
|
+
Optional[OutputXsiamQueueFullBehavior], pydantic.Field(alias="pqOnBackpressure")
|
|
404
384
|
] = OutputXsiamQueueFullBehavior.BLOCK
|
|
405
385
|
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."""
|
|
406
386
|
|
|
407
|
-
pq_mode: Annotated[
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
] = OutputXsiamMode.ERROR
|
|
387
|
+
pq_mode: Annotated[Optional[OutputXsiamMode], pydantic.Field(alias="pqMode")] = (
|
|
388
|
+
OutputXsiamMode.ERROR
|
|
389
|
+
)
|
|
411
390
|
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."""
|
|
412
391
|
|
|
413
392
|
pq_controls: Annotated[
|
cribl_control_plane/sdk.py
CHANGED
|
@@ -20,6 +20,7 @@ if TYPE_CHECKING:
|
|
|
20
20
|
from cribl_control_plane.pipelines import Pipelines
|
|
21
21
|
from cribl_control_plane.routes_sdk import RoutesSDK
|
|
22
22
|
from cribl_control_plane.sources import Sources
|
|
23
|
+
from cribl_control_plane.versioning import Versioning
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
class CriblControlPlane(BaseSDK):
|
|
@@ -35,6 +36,8 @@ class CriblControlPlane(BaseSDK):
|
|
|
35
36
|
r"""Actions related to authentication. Do not use the /auth endpoints in Cribl.Cloud deployments. Instead, follow the instructions at https://docs.cribl.io/stream/api-tutorials/#criblcloud to authenticate for Cribl.Cloud."""
|
|
36
37
|
health: "Health"
|
|
37
38
|
r"""Actions related to REST server health"""
|
|
39
|
+
versioning: "Versioning"
|
|
40
|
+
r"""Actions related to Versioning"""
|
|
38
41
|
_sub_sdk_map = {
|
|
39
42
|
"sources": ("cribl_control_plane.sources", "Sources"),
|
|
40
43
|
"destinations": ("cribl_control_plane.destinations", "Destinations"),
|
|
@@ -42,6 +45,7 @@ class CriblControlPlane(BaseSDK):
|
|
|
42
45
|
"routes": ("cribl_control_plane.routes_sdk", "RoutesSDK"),
|
|
43
46
|
"auth": ("cribl_control_plane.auth_sdk", "AuthSDK"),
|
|
44
47
|
"health": ("cribl_control_plane.health", "Health"),
|
|
48
|
+
"versioning": ("cribl_control_plane.versioning", "Versioning"),
|
|
45
49
|
}
|
|
46
50
|
|
|
47
51
|
def __init__(
|