cribl-control-plane 0.0.13__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/__init__.py +17 -0
- cribl_control_plane/_hooks/__init__.py +5 -0
- cribl_control_plane/_hooks/clientcredentials.py +211 -0
- cribl_control_plane/_hooks/registration.py +13 -0
- cribl_control_plane/_hooks/sdkhooks.py +81 -0
- cribl_control_plane/_hooks/types.py +112 -0
- cribl_control_plane/_version.py +15 -0
- cribl_control_plane/auth_sdk.py +184 -0
- cribl_control_plane/basesdk.py +358 -0
- cribl_control_plane/errors/__init__.py +60 -0
- cribl_control_plane/errors/apierror.py +38 -0
- cribl_control_plane/errors/criblcontrolplaneerror.py +26 -0
- cribl_control_plane/errors/error.py +24 -0
- cribl_control_plane/errors/healthstatus_error.py +38 -0
- cribl_control_plane/errors/no_response_error.py +13 -0
- cribl_control_plane/errors/responsevalidationerror.py +25 -0
- cribl_control_plane/health.py +166 -0
- cribl_control_plane/httpclient.py +126 -0
- cribl_control_plane/models/__init__.py +7305 -0
- cribl_control_plane/models/addhectokenrequest.py +34 -0
- cribl_control_plane/models/authtoken.py +13 -0
- cribl_control_plane/models/createinputhectokenbyidop.py +45 -0
- cribl_control_plane/models/createinputop.py +24 -0
- cribl_control_plane/models/createoutputop.py +24 -0
- cribl_control_plane/models/createoutputtestbyidop.py +46 -0
- cribl_control_plane/models/criblevent.py +14 -0
- cribl_control_plane/models/deleteinputbyidop.py +37 -0
- cribl_control_plane/models/deleteoutputbyidop.py +37 -0
- cribl_control_plane/models/deleteoutputpqbyidop.py +36 -0
- cribl_control_plane/models/getinputbyidop.py +37 -0
- cribl_control_plane/models/getoutputbyidop.py +37 -0
- cribl_control_plane/models/getoutputpqbyidop.py +36 -0
- cribl_control_plane/models/getoutputsamplesbyidop.py +37 -0
- cribl_control_plane/models/healthstatus.py +36 -0
- cribl_control_plane/models/input.py +199 -0
- cribl_control_plane/models/inputappscope.py +448 -0
- cribl_control_plane/models/inputazureblob.py +308 -0
- cribl_control_plane/models/inputcollection.py +208 -0
- cribl_control_plane/models/inputconfluentcloud.py +585 -0
- cribl_control_plane/models/inputcribl.py +165 -0
- cribl_control_plane/models/inputcriblhttp.py +341 -0
- cribl_control_plane/models/inputcribllakehttp.py +342 -0
- cribl_control_plane/models/inputcriblmetrics.py +175 -0
- cribl_control_plane/models/inputcribltcp.py +299 -0
- cribl_control_plane/models/inputcrowdstrike.py +410 -0
- cribl_control_plane/models/inputdatadogagent.py +364 -0
- cribl_control_plane/models/inputdatagen.py +180 -0
- cribl_control_plane/models/inputedgeprometheus.py +551 -0
- cribl_control_plane/models/inputelastic.py +494 -0
- cribl_control_plane/models/inputeventhub.py +360 -0
- cribl_control_plane/models/inputexec.py +213 -0
- cribl_control_plane/models/inputfile.py +259 -0
- cribl_control_plane/models/inputfirehose.py +341 -0
- cribl_control_plane/models/inputgooglepubsub.py +247 -0
- cribl_control_plane/models/inputgrafana_union.py +1247 -0
- cribl_control_plane/models/inputhttp.py +403 -0
- cribl_control_plane/models/inputhttpraw.py +407 -0
- cribl_control_plane/models/inputjournalfiles.py +208 -0
- cribl_control_plane/models/inputkafka.py +581 -0
- cribl_control_plane/models/inputkinesis.py +363 -0
- cribl_control_plane/models/inputkubeevents.py +182 -0
- cribl_control_plane/models/inputkubelogs.py +256 -0
- cribl_control_plane/models/inputkubemetrics.py +233 -0
- cribl_control_plane/models/inputloki.py +468 -0
- cribl_control_plane/models/inputmetrics.py +290 -0
- cribl_control_plane/models/inputmodeldriventelemetry.py +274 -0
- cribl_control_plane/models/inputmsk.py +654 -0
- cribl_control_plane/models/inputnetflow.py +224 -0
- cribl_control_plane/models/inputoffice365mgmt.py +384 -0
- cribl_control_plane/models/inputoffice365msgtrace.py +449 -0
- cribl_control_plane/models/inputoffice365service.py +377 -0
- cribl_control_plane/models/inputopentelemetry.py +516 -0
- cribl_control_plane/models/inputprometheus.py +464 -0
- cribl_control_plane/models/inputprometheusrw.py +470 -0
- cribl_control_plane/models/inputrawudp.py +207 -0
- cribl_control_plane/models/inputs3.py +416 -0
- cribl_control_plane/models/inputs3inventory.py +440 -0
- cribl_control_plane/models/inputsecuritylake.py +425 -0
- cribl_control_plane/models/inputsnmp.py +274 -0
- cribl_control_plane/models/inputsplunk.py +387 -0
- cribl_control_plane/models/inputsplunkhec.py +478 -0
- cribl_control_plane/models/inputsplunksearch.py +537 -0
- cribl_control_plane/models/inputsqs.py +320 -0
- cribl_control_plane/models/inputsyslog_union.py +759 -0
- cribl_control_plane/models/inputsystemmetrics.py +533 -0
- cribl_control_plane/models/inputsystemstate.py +417 -0
- cribl_control_plane/models/inputtcp.py +359 -0
- cribl_control_plane/models/inputtcpjson.py +334 -0
- cribl_control_plane/models/inputwef.py +498 -0
- cribl_control_plane/models/inputwindowsmetrics.py +457 -0
- cribl_control_plane/models/inputwineventlogs.py +222 -0
- cribl_control_plane/models/inputwiz.py +334 -0
- cribl_control_plane/models/inputzscalerhec.py +439 -0
- cribl_control_plane/models/listinputop.py +24 -0
- cribl_control_plane/models/listoutputop.py +24 -0
- cribl_control_plane/models/logininfo.py +16 -0
- cribl_control_plane/models/output.py +229 -0
- cribl_control_plane/models/outputazureblob.py +471 -0
- cribl_control_plane/models/outputazuredataexplorer.py +660 -0
- cribl_control_plane/models/outputazureeventhub.py +321 -0
- cribl_control_plane/models/outputazurelogs.py +386 -0
- cribl_control_plane/models/outputclickhouse.py +650 -0
- cribl_control_plane/models/outputcloudwatch.py +273 -0
- cribl_control_plane/models/outputconfluentcloud.py +591 -0
- cribl_control_plane/models/outputcriblhttp.py +494 -0
- cribl_control_plane/models/outputcribllake.py +396 -0
- cribl_control_plane/models/outputcribltcp.py +387 -0
- cribl_control_plane/models/outputcrowdstrikenextgensiem.py +410 -0
- cribl_control_plane/models/outputdatadog.py +472 -0
- cribl_control_plane/models/outputdataset.py +437 -0
- cribl_control_plane/models/outputdefault.py +55 -0
- cribl_control_plane/models/outputdevnull.py +50 -0
- cribl_control_plane/models/outputdiskspool.py +89 -0
- cribl_control_plane/models/outputdls3.py +560 -0
- cribl_control_plane/models/outputdynatracehttp.py +454 -0
- cribl_control_plane/models/outputdynatraceotlp.py +486 -0
- cribl_control_plane/models/outputelastic.py +494 -0
- cribl_control_plane/models/outputelasticcloud.py +407 -0
- cribl_control_plane/models/outputexabeam.py +297 -0
- cribl_control_plane/models/outputfilesystem.py +357 -0
- cribl_control_plane/models/outputgooglechronicle.py +486 -0
- cribl_control_plane/models/outputgooglecloudlogging.py +557 -0
- cribl_control_plane/models/outputgooglecloudstorage.py +499 -0
- cribl_control_plane/models/outputgooglepubsub.py +274 -0
- cribl_control_plane/models/outputgrafanacloud_union.py +1024 -0
- cribl_control_plane/models/outputgraphite.py +225 -0
- cribl_control_plane/models/outputhoneycomb.py +369 -0
- cribl_control_plane/models/outputhumiohec.py +389 -0
- cribl_control_plane/models/outputinfluxdb.py +523 -0
- cribl_control_plane/models/outputkafka.py +581 -0
- cribl_control_plane/models/outputkinesis.py +312 -0
- cribl_control_plane/models/outputloki.py +425 -0
- cribl_control_plane/models/outputminio.py +512 -0
- cribl_control_plane/models/outputmsk.py +654 -0
- cribl_control_plane/models/outputnetflow.py +80 -0
- cribl_control_plane/models/outputnewrelic.py +424 -0
- cribl_control_plane/models/outputnewrelicevents.py +401 -0
- cribl_control_plane/models/outputopentelemetry.py +669 -0
- cribl_control_plane/models/outputprometheus.py +485 -0
- cribl_control_plane/models/outputring.py +121 -0
- cribl_control_plane/models/outputrouter.py +83 -0
- cribl_control_plane/models/outputs3.py +556 -0
- cribl_control_plane/models/outputsamplesresponse.py +14 -0
- cribl_control_plane/models/outputsecuritylake.py +505 -0
- cribl_control_plane/models/outputsentinel.py +488 -0
- cribl_control_plane/models/outputsentineloneaisiem.py +505 -0
- cribl_control_plane/models/outputservicenow.py +543 -0
- cribl_control_plane/models/outputsignalfx.py +369 -0
- cribl_control_plane/models/outputsnmp.py +80 -0
- cribl_control_plane/models/outputsns.py +274 -0
- cribl_control_plane/models/outputsplunk.py +383 -0
- cribl_control_plane/models/outputsplunkhec.py +434 -0
- cribl_control_plane/models/outputsplunklb.py +558 -0
- cribl_control_plane/models/outputsqs.py +328 -0
- cribl_control_plane/models/outputstatsd.py +224 -0
- cribl_control_plane/models/outputstatsdext.py +225 -0
- cribl_control_plane/models/outputsumologic.py +378 -0
- cribl_control_plane/models/outputsyslog.py +415 -0
- cribl_control_plane/models/outputtcpjson.py +413 -0
- cribl_control_plane/models/outputtestrequest.py +15 -0
- cribl_control_plane/models/outputtestresponse.py +29 -0
- cribl_control_plane/models/outputwavefront.py +369 -0
- cribl_control_plane/models/outputwebhook.py +689 -0
- cribl_control_plane/models/outputxsiam.py +415 -0
- cribl_control_plane/models/schemeclientoauth.py +24 -0
- cribl_control_plane/models/security.py +36 -0
- cribl_control_plane/models/updatehectokenrequest.py +31 -0
- cribl_control_plane/models/updateinputbyidop.py +44 -0
- cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +52 -0
- cribl_control_plane/models/updateoutputbyidop.py +44 -0
- cribl_control_plane/outputs.py +1615 -0
- cribl_control_plane/py.typed +1 -0
- cribl_control_plane/sdk.py +164 -0
- cribl_control_plane/sdkconfiguration.py +36 -0
- cribl_control_plane/sources.py +1355 -0
- cribl_control_plane/types/__init__.py +21 -0
- cribl_control_plane/types/basemodel.py +39 -0
- cribl_control_plane/utils/__init__.py +187 -0
- cribl_control_plane/utils/annotations.py +55 -0
- cribl_control_plane/utils/datetimes.py +23 -0
- cribl_control_plane/utils/enums.py +74 -0
- cribl_control_plane/utils/eventstreaming.py +238 -0
- cribl_control_plane/utils/forms.py +223 -0
- cribl_control_plane/utils/headers.py +136 -0
- cribl_control_plane/utils/logger.py +27 -0
- cribl_control_plane/utils/metadata.py +118 -0
- cribl_control_plane/utils/queryparams.py +205 -0
- cribl_control_plane/utils/requestbodies.py +66 -0
- cribl_control_plane/utils/retries.py +217 -0
- cribl_control_plane/utils/security.py +207 -0
- cribl_control_plane/utils/serializers.py +249 -0
- cribl_control_plane/utils/unmarshal_json_response.py +24 -0
- cribl_control_plane/utils/url.py +155 -0
- cribl_control_plane/utils/values.py +137 -0
- cribl_control_plane-0.0.13.dist-info/METADATA +489 -0
- cribl_control_plane-0.0.13.dist-info/RECORD +197 -0
- cribl_control_plane-0.0.13.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,464 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from cribl_control_plane import utils
|
|
5
|
+
from cribl_control_plane.types import BaseModel
|
|
6
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
7
|
+
from enum import Enum
|
|
8
|
+
import pydantic
|
|
9
|
+
from pydantic.functional_validators import PlainValidator
|
|
10
|
+
from typing import List, Optional
|
|
11
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class InputPrometheusType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
15
|
+
PROMETHEUS = "prometheus"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class InputPrometheusConnectionTypedDict(TypedDict):
|
|
19
|
+
output: str
|
|
20
|
+
pipeline: NotRequired[str]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class InputPrometheusConnection(BaseModel):
|
|
24
|
+
output: str
|
|
25
|
+
|
|
26
|
+
pipeline: Optional[str] = None
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class InputPrometheusMode(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
30
|
+
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
31
|
+
|
|
32
|
+
SMART = "smart"
|
|
33
|
+
ALWAYS = "always"
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class InputPrometheusCompression(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
37
|
+
r"""Codec to use to compress the persisted data"""
|
|
38
|
+
|
|
39
|
+
NONE = "none"
|
|
40
|
+
GZIP = "gzip"
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class InputPrometheusPqTypedDict(TypedDict):
|
|
44
|
+
mode: NotRequired[InputPrometheusMode]
|
|
45
|
+
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
46
|
+
max_buffer_size: NotRequired[float]
|
|
47
|
+
r"""The maximum number of events to hold in memory before writing the events to disk"""
|
|
48
|
+
commit_frequency: NotRequired[float]
|
|
49
|
+
r"""The number of events to send downstream before committing that Stream has read them"""
|
|
50
|
+
max_file_size: NotRequired[str]
|
|
51
|
+
r"""The maximum size to store in each queue file before closing and optionally compressing. Enter a numeral with units of KB, MB, etc."""
|
|
52
|
+
max_size: NotRequired[str]
|
|
53
|
+
r"""The maximum disk space that the queue can consume (as an average per Worker Process) before queueing stops. Enter a numeral with units of KB, MB, etc."""
|
|
54
|
+
path: NotRequired[str]
|
|
55
|
+
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
|
|
56
|
+
compress: NotRequired[InputPrometheusCompression]
|
|
57
|
+
r"""Codec to use to compress the persisted data"""
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class InputPrometheusPq(BaseModel):
|
|
61
|
+
mode: Annotated[
|
|
62
|
+
Optional[InputPrometheusMode], PlainValidator(validate_open_enum(False))
|
|
63
|
+
] = InputPrometheusMode.ALWAYS
|
|
64
|
+
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
65
|
+
|
|
66
|
+
max_buffer_size: Annotated[
|
|
67
|
+
Optional[float], pydantic.Field(alias="maxBufferSize")
|
|
68
|
+
] = 1000
|
|
69
|
+
r"""The maximum number of events to hold in memory before writing the events to disk"""
|
|
70
|
+
|
|
71
|
+
commit_frequency: Annotated[
|
|
72
|
+
Optional[float], pydantic.Field(alias="commitFrequency")
|
|
73
|
+
] = 42
|
|
74
|
+
r"""The number of events to send downstream before committing that Stream has read them"""
|
|
75
|
+
|
|
76
|
+
max_file_size: Annotated[Optional[str], pydantic.Field(alias="maxFileSize")] = (
|
|
77
|
+
"1 MB"
|
|
78
|
+
)
|
|
79
|
+
r"""The maximum size to store in each queue file before closing and optionally compressing. Enter a numeral with units of KB, MB, etc."""
|
|
80
|
+
|
|
81
|
+
max_size: Annotated[Optional[str], pydantic.Field(alias="maxSize")] = "5GB"
|
|
82
|
+
r"""The maximum disk space that the queue can consume (as an average per Worker Process) before queueing stops. Enter a numeral with units of KB, MB, etc."""
|
|
83
|
+
|
|
84
|
+
path: Optional[str] = "$CRIBL_HOME/state/queues"
|
|
85
|
+
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
|
|
86
|
+
|
|
87
|
+
compress: Annotated[
|
|
88
|
+
Optional[InputPrometheusCompression], PlainValidator(validate_open_enum(False))
|
|
89
|
+
] = InputPrometheusCompression.NONE
|
|
90
|
+
r"""Codec to use to compress the persisted data"""
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class InputPrometheusDiscoveryType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
94
|
+
r"""Target discovery mechanism. Use static to manually enter a list of targets."""
|
|
95
|
+
|
|
96
|
+
STATIC = "static"
|
|
97
|
+
DNS = "dns"
|
|
98
|
+
EC2 = "ec2"
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class InputPrometheusLogLevel(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
102
|
+
r"""Collector runtime Log Level"""
|
|
103
|
+
|
|
104
|
+
ERROR = "error"
|
|
105
|
+
WARN = "warn"
|
|
106
|
+
INFO = "info"
|
|
107
|
+
DEBUG = "debug"
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class InputPrometheusMetadatumTypedDict(TypedDict):
|
|
111
|
+
name: str
|
|
112
|
+
value: str
|
|
113
|
+
r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
class InputPrometheusMetadatum(BaseModel):
|
|
117
|
+
name: str
|
|
118
|
+
|
|
119
|
+
value: str
|
|
120
|
+
r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
class InputPrometheusAuthTypeAuthenticationMethod(
|
|
124
|
+
str, Enum, metaclass=utils.OpenEnumMeta
|
|
125
|
+
):
|
|
126
|
+
r"""Enter credentials directly, or select a stored secret"""
|
|
127
|
+
|
|
128
|
+
MANUAL = "manual"
|
|
129
|
+
SECRET = "secret"
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
class InputPrometheusRecordType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
133
|
+
r"""DNS Record type to resolve"""
|
|
134
|
+
|
|
135
|
+
SRV = "SRV"
|
|
136
|
+
A = "A"
|
|
137
|
+
AAAA = "AAAA"
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
class MetricsProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
141
|
+
r"""Protocol to use when collecting metrics"""
|
|
142
|
+
|
|
143
|
+
HTTP = "http"
|
|
144
|
+
HTTPS = "https"
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
class InputPrometheusSearchFilterTypedDict(TypedDict):
|
|
148
|
+
name: str
|
|
149
|
+
r"""Search filter attribute name, see: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html for more information. Attributes can be manually entered if not present in the drop down list"""
|
|
150
|
+
values: List[str]
|
|
151
|
+
r"""Search Filter Values, if empty only \"running\" EC2 instances will be returned"""
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
class InputPrometheusSearchFilter(BaseModel):
|
|
155
|
+
name: Annotated[str, pydantic.Field(alias="Name")]
|
|
156
|
+
r"""Search filter attribute name, see: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html for more information. Attributes can be manually entered if not present in the drop down list"""
|
|
157
|
+
|
|
158
|
+
values: Annotated[List[str], pydantic.Field(alias="Values")]
|
|
159
|
+
r"""Search Filter Values, if empty only \"running\" EC2 instances will be returned"""
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
class InputPrometheusAwsAuthenticationMethodAuthenticationMethod(
|
|
163
|
+
str, Enum, metaclass=utils.OpenEnumMeta
|
|
164
|
+
):
|
|
165
|
+
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
166
|
+
|
|
167
|
+
AUTO = "auto"
|
|
168
|
+
MANUAL = "manual"
|
|
169
|
+
SECRET = "secret"
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
class InputPrometheusSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
173
|
+
r"""Signature version to use for signing EC2 requests"""
|
|
174
|
+
|
|
175
|
+
V2 = "v2"
|
|
176
|
+
V4 = "v4"
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
class InputPrometheusTypedDict(TypedDict):
|
|
180
|
+
type: InputPrometheusType
|
|
181
|
+
id: NotRequired[str]
|
|
182
|
+
r"""Unique ID for this input"""
|
|
183
|
+
disabled: NotRequired[bool]
|
|
184
|
+
pipeline: NotRequired[str]
|
|
185
|
+
r"""Pipeline to process data from this Source before sending it through the Routes"""
|
|
186
|
+
send_to_routes: NotRequired[bool]
|
|
187
|
+
r"""Select whether to send data to Routes, or directly to Destinations."""
|
|
188
|
+
environment: NotRequired[str]
|
|
189
|
+
r"""Optionally, enable this config only on a specified Git branch. If empty, will be enabled everywhere."""
|
|
190
|
+
pq_enabled: NotRequired[bool]
|
|
191
|
+
r"""Use a disk queue to minimize data loss when connected services block. See [Cribl Docs](https://docs.cribl.io/stream/persistent-queues) for PQ defaults (Cribl-managed Cloud Workers) and configuration options (on-prem and hybrid Workers)."""
|
|
192
|
+
streamtags: NotRequired[List[str]]
|
|
193
|
+
r"""Tags for filtering and grouping in @{product}"""
|
|
194
|
+
connections: NotRequired[List[InputPrometheusConnectionTypedDict]]
|
|
195
|
+
r"""Direct connections to Destinations, and optionally via a Pipeline or a Pack"""
|
|
196
|
+
pq: NotRequired[InputPrometheusPqTypedDict]
|
|
197
|
+
dimension_list: NotRequired[List[str]]
|
|
198
|
+
r"""Other dimensions to include in events"""
|
|
199
|
+
discovery_type: NotRequired[InputPrometheusDiscoveryType]
|
|
200
|
+
r"""Target discovery mechanism. Use static to manually enter a list of targets."""
|
|
201
|
+
interval: NotRequired[float]
|
|
202
|
+
r"""How often in minutes to scrape targets for metrics, 60 must be evenly divisible by the value or save will fail."""
|
|
203
|
+
log_level: NotRequired[InputPrometheusLogLevel]
|
|
204
|
+
r"""Collector runtime Log Level"""
|
|
205
|
+
reject_unauthorized: NotRequired[bool]
|
|
206
|
+
r"""Reject certificates that cannot be verified against a valid CA, such as self-signed certificates"""
|
|
207
|
+
keep_alive_time: NotRequired[float]
|
|
208
|
+
r"""How often workers should check in with the scheduler to keep job subscription alive"""
|
|
209
|
+
job_timeout: NotRequired[str]
|
|
210
|
+
r"""Maximum time the job is allowed to run (e.g., 30, 45s or 15m). Units are seconds, if not specified. Enter 0 for unlimited time."""
|
|
211
|
+
max_missed_keep_alives: NotRequired[float]
|
|
212
|
+
r"""The number of Keep Alive Time periods before an inactive worker will have its job subscription revoked."""
|
|
213
|
+
ttl: NotRequired[str]
|
|
214
|
+
r"""Time to keep the job's artifacts on disk after job completion. This also affects how long a job is listed in the Job Inspector."""
|
|
215
|
+
ignore_group_jobs_limit: NotRequired[bool]
|
|
216
|
+
r"""When enabled, this job's artifacts are not counted toward the Worker Group's finished job artifacts limit. Artifacts will be removed only after the Collector's configured time to live."""
|
|
217
|
+
metadata: NotRequired[List[InputPrometheusMetadatumTypedDict]]
|
|
218
|
+
r"""Fields to add to events from this input"""
|
|
219
|
+
auth_type: NotRequired[InputPrometheusAuthTypeAuthenticationMethod]
|
|
220
|
+
r"""Enter credentials directly, or select a stored secret"""
|
|
221
|
+
description: NotRequired[str]
|
|
222
|
+
target_list: NotRequired[List[str]]
|
|
223
|
+
r"""List of Prometheus targets to pull metrics from. Values can be in URL or host[:port] format. For example: http://localhost:9090/metrics, localhost:9090, or localhost. In cases where just host[:port] is specified, the endpoint will resolve to 'http://host[:port]/metrics'."""
|
|
224
|
+
name_list: NotRequired[List[str]]
|
|
225
|
+
r"""List of DNS names to resolve"""
|
|
226
|
+
record_type: NotRequired[InputPrometheusRecordType]
|
|
227
|
+
r"""DNS Record type to resolve"""
|
|
228
|
+
scrape_protocol: NotRequired[MetricsProtocol]
|
|
229
|
+
r"""Protocol to use when collecting metrics"""
|
|
230
|
+
scrape_path: NotRequired[str]
|
|
231
|
+
r"""Path to use when collecting metrics from discovered targets"""
|
|
232
|
+
use_public_ip: NotRequired[bool]
|
|
233
|
+
r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
|
|
234
|
+
scrape_port: NotRequired[float]
|
|
235
|
+
r"""The port number in the metrics URL for discovered targets."""
|
|
236
|
+
search_filter: NotRequired[List[InputPrometheusSearchFilterTypedDict]]
|
|
237
|
+
r"""EC2 Instance Search Filter"""
|
|
238
|
+
aws_authentication_method: NotRequired[
|
|
239
|
+
InputPrometheusAwsAuthenticationMethodAuthenticationMethod
|
|
240
|
+
]
|
|
241
|
+
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
242
|
+
aws_secret_key: NotRequired[str]
|
|
243
|
+
region: NotRequired[str]
|
|
244
|
+
r"""Region where the EC2 is located"""
|
|
245
|
+
endpoint: NotRequired[str]
|
|
246
|
+
r"""EC2 service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to EC2-compatible endpoint."""
|
|
247
|
+
signature_version: NotRequired[InputPrometheusSignatureVersion]
|
|
248
|
+
r"""Signature version to use for signing EC2 requests"""
|
|
249
|
+
reuse_connections: NotRequired[bool]
|
|
250
|
+
r"""Reuse connections between requests, which can improve performance"""
|
|
251
|
+
enable_assume_role: NotRequired[bool]
|
|
252
|
+
r"""Use Assume Role credentials to access EC2"""
|
|
253
|
+
assume_role_arn: NotRequired[str]
|
|
254
|
+
r"""Amazon Resource Name (ARN) of the role to assume"""
|
|
255
|
+
assume_role_external_id: NotRequired[str]
|
|
256
|
+
r"""External ID to use when assuming role"""
|
|
257
|
+
duration_seconds: NotRequired[float]
|
|
258
|
+
r"""Duration of the assumed role's session, in seconds. Minimum is 900 (15 minutes), default is 3600 (1 hour), and maximum is 43200 (12 hours)."""
|
|
259
|
+
username: NotRequired[str]
|
|
260
|
+
r"""Username for Prometheus Basic authentication"""
|
|
261
|
+
password: NotRequired[str]
|
|
262
|
+
r"""Password for Prometheus Basic authentication"""
|
|
263
|
+
credentials_secret: NotRequired[str]
|
|
264
|
+
r"""Select or create a secret that references your credentials"""
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
class InputPrometheus(BaseModel):
|
|
268
|
+
type: Annotated[InputPrometheusType, PlainValidator(validate_open_enum(False))]
|
|
269
|
+
|
|
270
|
+
id: Optional[str] = None
|
|
271
|
+
r"""Unique ID for this input"""
|
|
272
|
+
|
|
273
|
+
disabled: Optional[bool] = False
|
|
274
|
+
|
|
275
|
+
pipeline: Optional[str] = None
|
|
276
|
+
r"""Pipeline to process data from this Source before sending it through the Routes"""
|
|
277
|
+
|
|
278
|
+
send_to_routes: Annotated[Optional[bool], pydantic.Field(alias="sendToRoutes")] = (
|
|
279
|
+
True
|
|
280
|
+
)
|
|
281
|
+
r"""Select whether to send data to Routes, or directly to Destinations."""
|
|
282
|
+
|
|
283
|
+
environment: Optional[str] = None
|
|
284
|
+
r"""Optionally, enable this config only on a specified Git branch. If empty, will be enabled everywhere."""
|
|
285
|
+
|
|
286
|
+
pq_enabled: Annotated[Optional[bool], pydantic.Field(alias="pqEnabled")] = False
|
|
287
|
+
r"""Use a disk queue to minimize data loss when connected services block. See [Cribl Docs](https://docs.cribl.io/stream/persistent-queues) for PQ defaults (Cribl-managed Cloud Workers) and configuration options (on-prem and hybrid Workers)."""
|
|
288
|
+
|
|
289
|
+
streamtags: Optional[List[str]] = None
|
|
290
|
+
r"""Tags for filtering and grouping in @{product}"""
|
|
291
|
+
|
|
292
|
+
connections: Optional[List[InputPrometheusConnection]] = None
|
|
293
|
+
r"""Direct connections to Destinations, and optionally via a Pipeline or a Pack"""
|
|
294
|
+
|
|
295
|
+
pq: Optional[InputPrometheusPq] = None
|
|
296
|
+
|
|
297
|
+
dimension_list: Annotated[
|
|
298
|
+
Optional[List[str]], pydantic.Field(alias="dimensionList")
|
|
299
|
+
] = None
|
|
300
|
+
r"""Other dimensions to include in events"""
|
|
301
|
+
|
|
302
|
+
discovery_type: Annotated[
|
|
303
|
+
Annotated[
|
|
304
|
+
Optional[InputPrometheusDiscoveryType],
|
|
305
|
+
PlainValidator(validate_open_enum(False)),
|
|
306
|
+
],
|
|
307
|
+
pydantic.Field(alias="discoveryType"),
|
|
308
|
+
] = InputPrometheusDiscoveryType.STATIC
|
|
309
|
+
r"""Target discovery mechanism. Use static to manually enter a list of targets."""
|
|
310
|
+
|
|
311
|
+
interval: Optional[float] = 15
|
|
312
|
+
r"""How often in minutes to scrape targets for metrics, 60 must be evenly divisible by the value or save will fail."""
|
|
313
|
+
|
|
314
|
+
log_level: Annotated[
|
|
315
|
+
Annotated[
|
|
316
|
+
Optional[InputPrometheusLogLevel], PlainValidator(validate_open_enum(False))
|
|
317
|
+
],
|
|
318
|
+
pydantic.Field(alias="logLevel"),
|
|
319
|
+
] = InputPrometheusLogLevel.INFO
|
|
320
|
+
r"""Collector runtime Log Level"""
|
|
321
|
+
|
|
322
|
+
reject_unauthorized: Annotated[
|
|
323
|
+
Optional[bool], pydantic.Field(alias="rejectUnauthorized")
|
|
324
|
+
] = True
|
|
325
|
+
r"""Reject certificates that cannot be verified against a valid CA, such as self-signed certificates"""
|
|
326
|
+
|
|
327
|
+
keep_alive_time: Annotated[
|
|
328
|
+
Optional[float], pydantic.Field(alias="keepAliveTime")
|
|
329
|
+
] = 30
|
|
330
|
+
r"""How often workers should check in with the scheduler to keep job subscription alive"""
|
|
331
|
+
|
|
332
|
+
job_timeout: Annotated[Optional[str], pydantic.Field(alias="jobTimeout")] = "0"
|
|
333
|
+
r"""Maximum time the job is allowed to run (e.g., 30, 45s or 15m). Units are seconds, if not specified. Enter 0 for unlimited time."""
|
|
334
|
+
|
|
335
|
+
max_missed_keep_alives: Annotated[
|
|
336
|
+
Optional[float], pydantic.Field(alias="maxMissedKeepAlives")
|
|
337
|
+
] = 3
|
|
338
|
+
r"""The number of Keep Alive Time periods before an inactive worker will have its job subscription revoked."""
|
|
339
|
+
|
|
340
|
+
ttl: Optional[str] = "4h"
|
|
341
|
+
r"""Time to keep the job's artifacts on disk after job completion. This also affects how long a job is listed in the Job Inspector."""
|
|
342
|
+
|
|
343
|
+
ignore_group_jobs_limit: Annotated[
|
|
344
|
+
Optional[bool], pydantic.Field(alias="ignoreGroupJobsLimit")
|
|
345
|
+
] = False
|
|
346
|
+
r"""When enabled, this job's artifacts are not counted toward the Worker Group's finished job artifacts limit. Artifacts will be removed only after the Collector's configured time to live."""
|
|
347
|
+
|
|
348
|
+
metadata: Optional[List[InputPrometheusMetadatum]] = None
|
|
349
|
+
r"""Fields to add to events from this input"""
|
|
350
|
+
|
|
351
|
+
auth_type: Annotated[
|
|
352
|
+
Annotated[
|
|
353
|
+
Optional[InputPrometheusAuthTypeAuthenticationMethod],
|
|
354
|
+
PlainValidator(validate_open_enum(False)),
|
|
355
|
+
],
|
|
356
|
+
pydantic.Field(alias="authType"),
|
|
357
|
+
] = InputPrometheusAuthTypeAuthenticationMethod.MANUAL
|
|
358
|
+
r"""Enter credentials directly, or select a stored secret"""
|
|
359
|
+
|
|
360
|
+
description: Optional[str] = None
|
|
361
|
+
|
|
362
|
+
target_list: Annotated[Optional[List[str]], pydantic.Field(alias="targetList")] = (
|
|
363
|
+
None
|
|
364
|
+
)
|
|
365
|
+
r"""List of Prometheus targets to pull metrics from. Values can be in URL or host[:port] format. For example: http://localhost:9090/metrics, localhost:9090, or localhost. In cases where just host[:port] is specified, the endpoint will resolve to 'http://host[:port]/metrics'."""
|
|
366
|
+
|
|
367
|
+
name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
|
|
368
|
+
r"""List of DNS names to resolve"""
|
|
369
|
+
|
|
370
|
+
record_type: Annotated[
|
|
371
|
+
Annotated[
|
|
372
|
+
Optional[InputPrometheusRecordType],
|
|
373
|
+
PlainValidator(validate_open_enum(False)),
|
|
374
|
+
],
|
|
375
|
+
pydantic.Field(alias="recordType"),
|
|
376
|
+
] = InputPrometheusRecordType.SRV
|
|
377
|
+
r"""DNS Record type to resolve"""
|
|
378
|
+
|
|
379
|
+
scrape_protocol: Annotated[
|
|
380
|
+
Annotated[Optional[MetricsProtocol], PlainValidator(validate_open_enum(False))],
|
|
381
|
+
pydantic.Field(alias="scrapeProtocol"),
|
|
382
|
+
] = MetricsProtocol.HTTP
|
|
383
|
+
r"""Protocol to use when collecting metrics"""
|
|
384
|
+
|
|
385
|
+
scrape_path: Annotated[Optional[str], pydantic.Field(alias="scrapePath")] = (
|
|
386
|
+
"/metrics"
|
|
387
|
+
)
|
|
388
|
+
r"""Path to use when collecting metrics from discovered targets"""
|
|
389
|
+
|
|
390
|
+
use_public_ip: Annotated[Optional[bool], pydantic.Field(alias="usePublicIp")] = True
|
|
391
|
+
r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
|
|
392
|
+
|
|
393
|
+
scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
|
|
394
|
+
r"""The port number in the metrics URL for discovered targets."""
|
|
395
|
+
|
|
396
|
+
search_filter: Annotated[
|
|
397
|
+
Optional[List[InputPrometheusSearchFilter]],
|
|
398
|
+
pydantic.Field(alias="searchFilter"),
|
|
399
|
+
] = None
|
|
400
|
+
r"""EC2 Instance Search Filter"""
|
|
401
|
+
|
|
402
|
+
aws_authentication_method: Annotated[
|
|
403
|
+
Annotated[
|
|
404
|
+
Optional[InputPrometheusAwsAuthenticationMethodAuthenticationMethod],
|
|
405
|
+
PlainValidator(validate_open_enum(False)),
|
|
406
|
+
],
|
|
407
|
+
pydantic.Field(alias="awsAuthenticationMethod"),
|
|
408
|
+
] = InputPrometheusAwsAuthenticationMethodAuthenticationMethod.AUTO
|
|
409
|
+
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
410
|
+
|
|
411
|
+
aws_secret_key: Annotated[Optional[str], pydantic.Field(alias="awsSecretKey")] = (
|
|
412
|
+
None
|
|
413
|
+
)
|
|
414
|
+
|
|
415
|
+
region: Optional[str] = None
|
|
416
|
+
r"""Region where the EC2 is located"""
|
|
417
|
+
|
|
418
|
+
endpoint: Optional[str] = None
|
|
419
|
+
r"""EC2 service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to EC2-compatible endpoint."""
|
|
420
|
+
|
|
421
|
+
signature_version: Annotated[
|
|
422
|
+
Annotated[
|
|
423
|
+
Optional[InputPrometheusSignatureVersion],
|
|
424
|
+
PlainValidator(validate_open_enum(False)),
|
|
425
|
+
],
|
|
426
|
+
pydantic.Field(alias="signatureVersion"),
|
|
427
|
+
] = InputPrometheusSignatureVersion.V4
|
|
428
|
+
r"""Signature version to use for signing EC2 requests"""
|
|
429
|
+
|
|
430
|
+
reuse_connections: Annotated[
|
|
431
|
+
Optional[bool], pydantic.Field(alias="reuseConnections")
|
|
432
|
+
] = True
|
|
433
|
+
r"""Reuse connections between requests, which can improve performance"""
|
|
434
|
+
|
|
435
|
+
enable_assume_role: Annotated[
|
|
436
|
+
Optional[bool], pydantic.Field(alias="enableAssumeRole")
|
|
437
|
+
] = False
|
|
438
|
+
r"""Use Assume Role credentials to access EC2"""
|
|
439
|
+
|
|
440
|
+
assume_role_arn: Annotated[Optional[str], pydantic.Field(alias="assumeRoleArn")] = (
|
|
441
|
+
None
|
|
442
|
+
)
|
|
443
|
+
r"""Amazon Resource Name (ARN) of the role to assume"""
|
|
444
|
+
|
|
445
|
+
assume_role_external_id: Annotated[
|
|
446
|
+
Optional[str], pydantic.Field(alias="assumeRoleExternalId")
|
|
447
|
+
] = None
|
|
448
|
+
r"""External ID to use when assuming role"""
|
|
449
|
+
|
|
450
|
+
duration_seconds: Annotated[
|
|
451
|
+
Optional[float], pydantic.Field(alias="durationSeconds")
|
|
452
|
+
] = 3600
|
|
453
|
+
r"""Duration of the assumed role's session, in seconds. Minimum is 900 (15 minutes), default is 3600 (1 hour), and maximum is 43200 (12 hours)."""
|
|
454
|
+
|
|
455
|
+
username: Optional[str] = None
|
|
456
|
+
r"""Username for Prometheus Basic authentication"""
|
|
457
|
+
|
|
458
|
+
password: Optional[str] = None
|
|
459
|
+
r"""Password for Prometheus Basic authentication"""
|
|
460
|
+
|
|
461
|
+
credentials_secret: Annotated[
|
|
462
|
+
Optional[str], pydantic.Field(alias="credentialsSecret")
|
|
463
|
+
] = None
|
|
464
|
+
r"""Select or create a secret that references your credentials"""
|