cribl-control-plane 0.2.1rc2__py3-none-any.whl → 0.2.1rc4__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/models/__init__.py +99 -3
- cribl_control_plane/models/input.py +14 -14
- cribl_control_plane/models/inputappscope.py +20 -16
- cribl_control_plane/models/inputconfluentcloud.py +110 -0
- cribl_control_plane/models/inputcriblhttp.py +20 -16
- cribl_control_plane/models/inputcribllakehttp.py +20 -16
- cribl_control_plane/models/inputcribltcp.py +20 -16
- cribl_control_plane/models/inputdatadogagent.py +20 -16
- cribl_control_plane/models/inputedgeprometheus.py +44 -36
- cribl_control_plane/models/inputelastic.py +44 -27
- cribl_control_plane/models/inputeventhub.py +118 -0
- cribl_control_plane/models/inputfirehose.py +20 -16
- cribl_control_plane/models/inputgrafana.py +39 -31
- cribl_control_plane/models/inputhttp.py +20 -16
- cribl_control_plane/models/inputhttpraw.py +20 -16
- cribl_control_plane/models/inputkafka.py +108 -0
- cribl_control_plane/models/inputloki.py +20 -16
- cribl_control_plane/models/inputmetrics.py +20 -16
- cribl_control_plane/models/inputmodeldriventelemetry.py +20 -16
- cribl_control_plane/models/inputopentelemetry.py +19 -15
- cribl_control_plane/models/inputprometheus.py +44 -36
- cribl_control_plane/models/inputprometheusrw.py +20 -16
- cribl_control_plane/models/inputsplunk.py +20 -16
- cribl_control_plane/models/inputsplunkhec.py +19 -15
- cribl_control_plane/models/inputsyslog.py +39 -31
- cribl_control_plane/models/inputsystemmetrics.py +20 -10
- cribl_control_plane/models/inputtcp.py +30 -16
- cribl_control_plane/models/inputtcpjson.py +20 -16
- cribl_control_plane/models/inputwindowsmetrics.py +20 -10
- cribl_control_plane/models/inputwineventlogs.py +14 -0
- cribl_control_plane/models/inputwizwebhook.py +20 -16
- cribl_control_plane/models/inputzscalerhec.py +19 -15
- cribl_control_plane/models/output.py +22 -22
- cribl_control_plane/models/outputazureblob.py +7 -0
- cribl_control_plane/models/outputazuredataexplorer.py +283 -93
- cribl_control_plane/models/outputazureeventhub.py +169 -21
- cribl_control_plane/models/outputazurelogs.py +49 -21
- cribl_control_plane/models/outputchronicle.py +49 -21
- cribl_control_plane/models/outputclickhouse.py +49 -21
- cribl_control_plane/models/outputcloudwatch.py +49 -21
- cribl_control_plane/models/outputconfluentcloud.py +167 -22
- cribl_control_plane/models/outputcriblhttp.py +49 -21
- cribl_control_plane/models/outputcribltcp.py +49 -21
- cribl_control_plane/models/outputcrowdstrikenextgensiem.py +50 -22
- cribl_control_plane/models/outputdatabricks.py +7 -0
- cribl_control_plane/models/outputdatadog.py +49 -21
- cribl_control_plane/models/outputdataset.py +49 -21
- cribl_control_plane/models/outputdls3.py +7 -0
- cribl_control_plane/models/outputdynatracehttp.py +49 -21
- cribl_control_plane/models/outputdynatraceotlp.py +49 -21
- cribl_control_plane/models/outputelastic.py +74 -21
- cribl_control_plane/models/outputelasticcloud.py +74 -21
- cribl_control_plane/models/outputfilesystem.py +7 -0
- cribl_control_plane/models/outputgooglechronicle.py +65 -22
- cribl_control_plane/models/outputgooglecloudlogging.py +50 -22
- cribl_control_plane/models/outputgooglecloudstorage.py +7 -0
- cribl_control_plane/models/outputgooglepubsub.py +49 -21
- cribl_control_plane/models/outputgrafanacloud.py +98 -42
- cribl_control_plane/models/outputgraphite.py +49 -21
- cribl_control_plane/models/outputhoneycomb.py +49 -21
- cribl_control_plane/models/outputhumiohec.py +49 -21
- cribl_control_plane/models/outputinfluxdb.py +49 -21
- cribl_control_plane/models/outputkafka.py +162 -19
- cribl_control_plane/models/outputkinesis.py +56 -21
- cribl_control_plane/models/outputloki.py +47 -19
- cribl_control_plane/models/outputminio.py +7 -0
- cribl_control_plane/models/outputmsk.py +54 -19
- cribl_control_plane/models/outputnewrelic.py +49 -21
- cribl_control_plane/models/outputnewrelicevents.py +50 -22
- cribl_control_plane/models/outputopentelemetry.py +49 -21
- cribl_control_plane/models/outputprometheus.py +49 -21
- cribl_control_plane/models/outputs3.py +7 -0
- cribl_control_plane/models/outputsentinel.py +49 -21
- cribl_control_plane/models/outputsentineloneaisiem.py +50 -22
- cribl_control_plane/models/outputservicenow.py +49 -21
- cribl_control_plane/models/outputsignalfx.py +49 -21
- cribl_control_plane/models/outputsns.py +47 -19
- cribl_control_plane/models/outputsplunk.py +49 -21
- cribl_control_plane/models/outputsplunkhec.py +49 -21
- cribl_control_plane/models/outputsplunklb.py +49 -21
- cribl_control_plane/models/outputsqs.py +47 -19
- cribl_control_plane/models/outputstatsd.py +49 -21
- cribl_control_plane/models/outputstatsdext.py +49 -21
- cribl_control_plane/models/outputsumologic.py +49 -21
- cribl_control_plane/models/outputsyslog.py +129 -99
- cribl_control_plane/models/outputtcpjson.py +49 -21
- cribl_control_plane/models/outputwavefront.py +49 -21
- cribl_control_plane/models/outputwebhook.py +49 -21
- cribl_control_plane/models/outputxsiam.py +47 -19
- cribl_control_plane/models/runnablejobcollection.py +12 -8
- cribl_control_plane/models/runnablejobexecutor.py +12 -8
- cribl_control_plane/models/runnablejobscheduledsearch.py +12 -8
- {cribl_control_plane-0.2.1rc2.dist-info → cribl_control_plane-0.2.1rc4.dist-info}/METADATA +1 -1
- {cribl_control_plane-0.2.1rc2.dist-info → cribl_control_plane-0.2.1rc4.dist-info}/RECORD +96 -96
- {cribl_control_plane-0.2.1rc2.dist-info → cribl_control_plane-0.2.1rc4.dist-info}/WHEEL +0 -0
|
@@ -255,6 +255,13 @@ class InputKafkaKafkaSchemaRegistryAuthentication(BaseModel):
|
|
|
255
255
|
tls: Optional[InputKafkaKafkaSchemaRegistryTLSSettingsClientSide] = None
|
|
256
256
|
|
|
257
257
|
|
|
258
|
+
class InputKafkaAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
259
|
+
r"""Enter credentials directly, or select a stored secret"""
|
|
260
|
+
|
|
261
|
+
MANUAL = "manual"
|
|
262
|
+
SECRET = "secret"
|
|
263
|
+
|
|
264
|
+
|
|
258
265
|
class InputKafkaSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
259
266
|
# PLAIN
|
|
260
267
|
PLAIN = "plain"
|
|
@@ -266,13 +273,58 @@ class InputKafkaSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
266
273
|
KERBEROS = "kerberos"
|
|
267
274
|
|
|
268
275
|
|
|
276
|
+
class InputKafkaOauthParamTypedDict(TypedDict):
|
|
277
|
+
name: str
|
|
278
|
+
value: str
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
class InputKafkaOauthParam(BaseModel):
|
|
282
|
+
name: str
|
|
283
|
+
|
|
284
|
+
value: str
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
class InputKafkaSaslExtensionTypedDict(TypedDict):
|
|
288
|
+
name: str
|
|
289
|
+
value: str
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
class InputKafkaSaslExtension(BaseModel):
|
|
293
|
+
name: str
|
|
294
|
+
|
|
295
|
+
value: str
|
|
296
|
+
|
|
297
|
+
|
|
269
298
|
class InputKafkaAuthenticationTypedDict(TypedDict):
|
|
270
299
|
r"""Authentication parameters to use when connecting to brokers. Using TLS is highly recommended."""
|
|
271
300
|
|
|
272
301
|
disabled: NotRequired[bool]
|
|
302
|
+
username: NotRequired[str]
|
|
303
|
+
password: NotRequired[str]
|
|
304
|
+
auth_type: NotRequired[InputKafkaAuthenticationMethod]
|
|
305
|
+
r"""Enter credentials directly, or select a stored secret"""
|
|
306
|
+
credentials_secret: NotRequired[str]
|
|
307
|
+
r"""Select or create a secret that references your credentials"""
|
|
273
308
|
mechanism: NotRequired[InputKafkaSASLMechanism]
|
|
309
|
+
keytab_location: NotRequired[str]
|
|
310
|
+
r"""Location of keytab file for authentication principal"""
|
|
311
|
+
principal: NotRequired[str]
|
|
312
|
+
r"""Authentication principal, such as `kafka_user@example.com`"""
|
|
313
|
+
broker_service_class: NotRequired[str]
|
|
314
|
+
r"""Kerberos service class for Kafka brokers, such as `kafka`"""
|
|
274
315
|
oauth_enabled: NotRequired[bool]
|
|
275
316
|
r"""Enable OAuth authentication"""
|
|
317
|
+
token_url: NotRequired[str]
|
|
318
|
+
r"""URL of the token endpoint to use for OAuth authentication"""
|
|
319
|
+
client_id: NotRequired[str]
|
|
320
|
+
r"""Client ID to use for OAuth authentication"""
|
|
321
|
+
oauth_secret_type: NotRequired[str]
|
|
322
|
+
client_text_secret: NotRequired[str]
|
|
323
|
+
r"""Select or create a stored text secret"""
|
|
324
|
+
oauth_params: NotRequired[List[InputKafkaOauthParamTypedDict]]
|
|
325
|
+
r"""Additional fields to send to the token endpoint, such as scope or audience"""
|
|
326
|
+
sasl_extensions: NotRequired[List[InputKafkaSaslExtensionTypedDict]]
|
|
327
|
+
r"""Additional SASL extension fields, such as Confluent's logicalCluster or identityPoolId"""
|
|
276
328
|
|
|
277
329
|
|
|
278
330
|
class InputKafkaAuthentication(BaseModel):
|
|
@@ -280,15 +332,71 @@ class InputKafkaAuthentication(BaseModel):
|
|
|
280
332
|
|
|
281
333
|
disabled: Optional[bool] = True
|
|
282
334
|
|
|
335
|
+
username: Optional[str] = None
|
|
336
|
+
|
|
337
|
+
password: Optional[str] = None
|
|
338
|
+
|
|
339
|
+
auth_type: Annotated[
|
|
340
|
+
Annotated[
|
|
341
|
+
Optional[InputKafkaAuthenticationMethod],
|
|
342
|
+
PlainValidator(validate_open_enum(False)),
|
|
343
|
+
],
|
|
344
|
+
pydantic.Field(alias="authType"),
|
|
345
|
+
] = InputKafkaAuthenticationMethod.MANUAL
|
|
346
|
+
r"""Enter credentials directly, or select a stored secret"""
|
|
347
|
+
|
|
348
|
+
credentials_secret: Annotated[
|
|
349
|
+
Optional[str], pydantic.Field(alias="credentialsSecret")
|
|
350
|
+
] = None
|
|
351
|
+
r"""Select or create a secret that references your credentials"""
|
|
352
|
+
|
|
283
353
|
mechanism: Annotated[
|
|
284
354
|
Optional[InputKafkaSASLMechanism], PlainValidator(validate_open_enum(False))
|
|
285
355
|
] = InputKafkaSASLMechanism.PLAIN
|
|
286
356
|
|
|
357
|
+
keytab_location: Annotated[
|
|
358
|
+
Optional[str], pydantic.Field(alias="keytabLocation")
|
|
359
|
+
] = None
|
|
360
|
+
r"""Location of keytab file for authentication principal"""
|
|
361
|
+
|
|
362
|
+
principal: Optional[str] = None
|
|
363
|
+
r"""Authentication principal, such as `kafka_user@example.com`"""
|
|
364
|
+
|
|
365
|
+
broker_service_class: Annotated[
|
|
366
|
+
Optional[str], pydantic.Field(alias="brokerServiceClass")
|
|
367
|
+
] = None
|
|
368
|
+
r"""Kerberos service class for Kafka brokers, such as `kafka`"""
|
|
369
|
+
|
|
287
370
|
oauth_enabled: Annotated[Optional[bool], pydantic.Field(alias="oauthEnabled")] = (
|
|
288
371
|
False
|
|
289
372
|
)
|
|
290
373
|
r"""Enable OAuth authentication"""
|
|
291
374
|
|
|
375
|
+
token_url: Annotated[Optional[str], pydantic.Field(alias="tokenUrl")] = None
|
|
376
|
+
r"""URL of the token endpoint to use for OAuth authentication"""
|
|
377
|
+
|
|
378
|
+
client_id: Annotated[Optional[str], pydantic.Field(alias="clientId")] = None
|
|
379
|
+
r"""Client ID to use for OAuth authentication"""
|
|
380
|
+
|
|
381
|
+
oauth_secret_type: Annotated[
|
|
382
|
+
Optional[str], pydantic.Field(alias="oauthSecretType")
|
|
383
|
+
] = "secret"
|
|
384
|
+
|
|
385
|
+
client_text_secret: Annotated[
|
|
386
|
+
Optional[str], pydantic.Field(alias="clientTextSecret")
|
|
387
|
+
] = None
|
|
388
|
+
r"""Select or create a stored text secret"""
|
|
389
|
+
|
|
390
|
+
oauth_params: Annotated[
|
|
391
|
+
Optional[List[InputKafkaOauthParam]], pydantic.Field(alias="oauthParams")
|
|
392
|
+
] = None
|
|
393
|
+
r"""Additional fields to send to the token endpoint, such as scope or audience"""
|
|
394
|
+
|
|
395
|
+
sasl_extensions: Annotated[
|
|
396
|
+
Optional[List[InputKafkaSaslExtension]], pydantic.Field(alias="saslExtensions")
|
|
397
|
+
] = None
|
|
398
|
+
r"""Additional SASL extension fields, such as Confluent's logicalCluster or identityPoolId"""
|
|
399
|
+
|
|
292
400
|
|
|
293
401
|
class InputKafkaMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
294
402
|
TL_SV1 = "TLSv1"
|
|
@@ -7,7 +7,7 @@ from cribl_control_plane.utils import validate_open_enum
|
|
|
7
7
|
from enum import Enum
|
|
8
8
|
import pydantic
|
|
9
9
|
from pydantic.functional_validators import PlainValidator
|
|
10
|
-
from typing import
|
|
10
|
+
from typing import List, Optional
|
|
11
11
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
12
|
|
|
13
13
|
|
|
@@ -123,6 +123,12 @@ class InputLokiMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
123
123
|
|
|
124
124
|
class InputLokiTLSSettingsServerSideTypedDict(TypedDict):
|
|
125
125
|
disabled: NotRequired[bool]
|
|
126
|
+
request_cert: NotRequired[bool]
|
|
127
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
128
|
+
reject_unauthorized: NotRequired[bool]
|
|
129
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
130
|
+
common_name_regex: NotRequired[str]
|
|
131
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
126
132
|
certificate_name: NotRequired[str]
|
|
127
133
|
r"""The name of the predefined certificate"""
|
|
128
134
|
priv_key_path: NotRequired[str]
|
|
@@ -133,10 +139,6 @@ class InputLokiTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
133
139
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
134
140
|
ca_path: NotRequired[str]
|
|
135
141
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
136
|
-
request_cert: NotRequired[bool]
|
|
137
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
138
|
-
reject_unauthorized: NotRequired[Any]
|
|
139
|
-
common_name_regex: NotRequired[Any]
|
|
140
142
|
min_version: NotRequired[InputLokiMinimumTLSVersion]
|
|
141
143
|
max_version: NotRequired[InputLokiMaximumTLSVersion]
|
|
142
144
|
|
|
@@ -144,6 +146,19 @@ class InputLokiTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
144
146
|
class InputLokiTLSSettingsServerSide(BaseModel):
|
|
145
147
|
disabled: Optional[bool] = True
|
|
146
148
|
|
|
149
|
+
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
150
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
151
|
+
|
|
152
|
+
reject_unauthorized: Annotated[
|
|
153
|
+
Optional[bool], pydantic.Field(alias="rejectUnauthorized")
|
|
154
|
+
] = True
|
|
155
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
156
|
+
|
|
157
|
+
common_name_regex: Annotated[
|
|
158
|
+
Optional[str], pydantic.Field(alias="commonNameRegex")
|
|
159
|
+
] = "/.*/"
|
|
160
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
161
|
+
|
|
147
162
|
certificate_name: Annotated[
|
|
148
163
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
149
164
|
] = None
|
|
@@ -161,17 +176,6 @@ class InputLokiTLSSettingsServerSide(BaseModel):
|
|
|
161
176
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
162
177
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
163
178
|
|
|
164
|
-
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
165
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
166
|
-
|
|
167
|
-
reject_unauthorized: Annotated[
|
|
168
|
-
Optional[Any], pydantic.Field(alias="rejectUnauthorized")
|
|
169
|
-
] = None
|
|
170
|
-
|
|
171
|
-
common_name_regex: Annotated[
|
|
172
|
-
Optional[Any], pydantic.Field(alias="commonNameRegex")
|
|
173
|
-
] = None
|
|
174
|
-
|
|
175
179
|
min_version: Annotated[
|
|
176
180
|
Annotated[
|
|
177
181
|
Optional[InputLokiMinimumTLSVersion],
|
|
@@ -7,7 +7,7 @@ from cribl_control_plane.utils import validate_open_enum
|
|
|
7
7
|
from enum import Enum
|
|
8
8
|
import pydantic
|
|
9
9
|
from pydantic.functional_validators import PlainValidator
|
|
10
|
-
from typing import
|
|
10
|
+
from typing import List, Optional
|
|
11
11
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
12
|
|
|
13
13
|
|
|
@@ -123,6 +123,12 @@ class InputMetricsMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
123
123
|
|
|
124
124
|
class InputMetricsTLSSettingsServerSideTypedDict(TypedDict):
|
|
125
125
|
disabled: NotRequired[bool]
|
|
126
|
+
request_cert: NotRequired[bool]
|
|
127
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
128
|
+
reject_unauthorized: NotRequired[bool]
|
|
129
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
130
|
+
common_name_regex: NotRequired[str]
|
|
131
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
126
132
|
certificate_name: NotRequired[str]
|
|
127
133
|
r"""The name of the predefined certificate"""
|
|
128
134
|
priv_key_path: NotRequired[str]
|
|
@@ -133,10 +139,6 @@ class InputMetricsTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
133
139
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
134
140
|
ca_path: NotRequired[str]
|
|
135
141
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
136
|
-
request_cert: NotRequired[bool]
|
|
137
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
138
|
-
reject_unauthorized: NotRequired[Any]
|
|
139
|
-
common_name_regex: NotRequired[Any]
|
|
140
142
|
min_version: NotRequired[InputMetricsMinimumTLSVersion]
|
|
141
143
|
max_version: NotRequired[InputMetricsMaximumTLSVersion]
|
|
142
144
|
|
|
@@ -144,6 +146,19 @@ class InputMetricsTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
144
146
|
class InputMetricsTLSSettingsServerSide(BaseModel):
|
|
145
147
|
disabled: Optional[bool] = True
|
|
146
148
|
|
|
149
|
+
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
150
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
151
|
+
|
|
152
|
+
reject_unauthorized: Annotated[
|
|
153
|
+
Optional[bool], pydantic.Field(alias="rejectUnauthorized")
|
|
154
|
+
] = True
|
|
155
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
156
|
+
|
|
157
|
+
common_name_regex: Annotated[
|
|
158
|
+
Optional[str], pydantic.Field(alias="commonNameRegex")
|
|
159
|
+
] = "/.*/"
|
|
160
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
161
|
+
|
|
147
162
|
certificate_name: Annotated[
|
|
148
163
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
149
164
|
] = None
|
|
@@ -161,17 +176,6 @@ class InputMetricsTLSSettingsServerSide(BaseModel):
|
|
|
161
176
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
162
177
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
163
178
|
|
|
164
|
-
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
165
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
166
|
-
|
|
167
|
-
reject_unauthorized: Annotated[
|
|
168
|
-
Optional[Any], pydantic.Field(alias="rejectUnauthorized")
|
|
169
|
-
] = None
|
|
170
|
-
|
|
171
|
-
common_name_regex: Annotated[
|
|
172
|
-
Optional[Any], pydantic.Field(alias="commonNameRegex")
|
|
173
|
-
] = None
|
|
174
|
-
|
|
175
179
|
min_version: Annotated[
|
|
176
180
|
Annotated[
|
|
177
181
|
Optional[InputMetricsMinimumTLSVersion],
|
|
@@ -7,7 +7,7 @@ from cribl_control_plane.utils import validate_open_enum
|
|
|
7
7
|
from enum import Enum
|
|
8
8
|
import pydantic
|
|
9
9
|
from pydantic.functional_validators import PlainValidator
|
|
10
|
-
from typing import
|
|
10
|
+
from typing import List, Optional
|
|
11
11
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
12
|
|
|
13
13
|
|
|
@@ -130,6 +130,12 @@ class InputModelDrivenTelemetryMaximumTLSVersion(
|
|
|
130
130
|
|
|
131
131
|
class InputModelDrivenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
|
|
132
132
|
disabled: NotRequired[bool]
|
|
133
|
+
request_cert: NotRequired[bool]
|
|
134
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
135
|
+
reject_unauthorized: NotRequired[bool]
|
|
136
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
137
|
+
common_name_regex: NotRequired[str]
|
|
138
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
133
139
|
certificate_name: NotRequired[str]
|
|
134
140
|
r"""The name of the predefined certificate"""
|
|
135
141
|
priv_key_path: NotRequired[str]
|
|
@@ -140,10 +146,6 @@ class InputModelDrivenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
140
146
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
141
147
|
ca_path: NotRequired[str]
|
|
142
148
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
143
|
-
request_cert: NotRequired[bool]
|
|
144
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
145
|
-
reject_unauthorized: NotRequired[Any]
|
|
146
|
-
common_name_regex: NotRequired[Any]
|
|
147
149
|
min_version: NotRequired[InputModelDrivenTelemetryMinimumTLSVersion]
|
|
148
150
|
max_version: NotRequired[InputModelDrivenTelemetryMaximumTLSVersion]
|
|
149
151
|
|
|
@@ -151,6 +153,19 @@ class InputModelDrivenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
151
153
|
class InputModelDrivenTelemetryTLSSettingsServerSide(BaseModel):
|
|
152
154
|
disabled: Optional[bool] = True
|
|
153
155
|
|
|
156
|
+
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
157
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
158
|
+
|
|
159
|
+
reject_unauthorized: Annotated[
|
|
160
|
+
Optional[bool], pydantic.Field(alias="rejectUnauthorized")
|
|
161
|
+
] = True
|
|
162
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
163
|
+
|
|
164
|
+
common_name_regex: Annotated[
|
|
165
|
+
Optional[str], pydantic.Field(alias="commonNameRegex")
|
|
166
|
+
] = "/.*/"
|
|
167
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
168
|
+
|
|
154
169
|
certificate_name: Annotated[
|
|
155
170
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
156
171
|
] = None
|
|
@@ -168,17 +183,6 @@ class InputModelDrivenTelemetryTLSSettingsServerSide(BaseModel):
|
|
|
168
183
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
169
184
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
170
185
|
|
|
171
|
-
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
172
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
173
|
-
|
|
174
|
-
reject_unauthorized: Annotated[
|
|
175
|
-
Optional[Any], pydantic.Field(alias="rejectUnauthorized")
|
|
176
|
-
] = None
|
|
177
|
-
|
|
178
|
-
common_name_regex: Annotated[
|
|
179
|
-
Optional[Any], pydantic.Field(alias="commonNameRegex")
|
|
180
|
-
] = None
|
|
181
|
-
|
|
182
186
|
min_version: Annotated[
|
|
183
187
|
Annotated[
|
|
184
188
|
Optional[InputModelDrivenTelemetryMinimumTLSVersion],
|
|
@@ -124,6 +124,12 @@ class InputOpenTelemetryMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMet
|
|
|
124
124
|
|
|
125
125
|
class InputOpenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
|
|
126
126
|
disabled: NotRequired[bool]
|
|
127
|
+
request_cert: NotRequired[bool]
|
|
128
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
129
|
+
reject_unauthorized: NotRequired[bool]
|
|
130
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
131
|
+
common_name_regex: NotRequired[str]
|
|
132
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
127
133
|
certificate_name: NotRequired[str]
|
|
128
134
|
r"""The name of the predefined certificate"""
|
|
129
135
|
priv_key_path: NotRequired[str]
|
|
@@ -134,10 +140,6 @@ class InputOpenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
134
140
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
135
141
|
ca_path: NotRequired[str]
|
|
136
142
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
137
|
-
request_cert: NotRequired[bool]
|
|
138
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
139
|
-
reject_unauthorized: NotRequired[Any]
|
|
140
|
-
common_name_regex: NotRequired[Any]
|
|
141
143
|
min_version: NotRequired[InputOpenTelemetryMinimumTLSVersion]
|
|
142
144
|
max_version: NotRequired[InputOpenTelemetryMaximumTLSVersion]
|
|
143
145
|
|
|
@@ -145,6 +147,19 @@ class InputOpenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
145
147
|
class InputOpenTelemetryTLSSettingsServerSide(BaseModel):
|
|
146
148
|
disabled: Optional[bool] = True
|
|
147
149
|
|
|
150
|
+
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
151
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
152
|
+
|
|
153
|
+
reject_unauthorized: Annotated[
|
|
154
|
+
Optional[bool], pydantic.Field(alias="rejectUnauthorized")
|
|
155
|
+
] = True
|
|
156
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
157
|
+
|
|
158
|
+
common_name_regex: Annotated[
|
|
159
|
+
Optional[str], pydantic.Field(alias="commonNameRegex")
|
|
160
|
+
] = "/.*/"
|
|
161
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
162
|
+
|
|
148
163
|
certificate_name: Annotated[
|
|
149
164
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
150
165
|
] = None
|
|
@@ -162,17 +177,6 @@ class InputOpenTelemetryTLSSettingsServerSide(BaseModel):
|
|
|
162
177
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
163
178
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
164
179
|
|
|
165
|
-
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
166
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
167
|
-
|
|
168
|
-
reject_unauthorized: Annotated[
|
|
169
|
-
Optional[Any], pydantic.Field(alias="rejectUnauthorized")
|
|
170
|
-
] = None
|
|
171
|
-
|
|
172
|
-
common_name_regex: Annotated[
|
|
173
|
-
Optional[Any], pydantic.Field(alias="commonNameRegex")
|
|
174
|
-
] = None
|
|
175
|
-
|
|
176
180
|
min_version: Annotated[
|
|
177
181
|
Annotated[
|
|
178
182
|
Optional[InputOpenTelemetryMinimumTLSVersion],
|
|
@@ -164,6 +164,19 @@ class MetricsProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
164
164
|
HTTPS = "https"
|
|
165
165
|
|
|
166
166
|
|
|
167
|
+
class InputPrometheusAwsAuthenticationMethodAuthenticationMethod(
|
|
168
|
+
str, Enum, metaclass=utils.OpenEnumMeta
|
|
169
|
+
):
|
|
170
|
+
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
171
|
+
|
|
172
|
+
# Auto
|
|
173
|
+
AUTO = "auto"
|
|
174
|
+
# Manual
|
|
175
|
+
MANUAL = "manual"
|
|
176
|
+
# Secret Key pair
|
|
177
|
+
SECRET = "secret"
|
|
178
|
+
|
|
179
|
+
|
|
167
180
|
class InputPrometheusSearchFilterTypedDict(TypedDict):
|
|
168
181
|
name: str
|
|
169
182
|
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"""
|
|
@@ -179,19 +192,6 @@ class InputPrometheusSearchFilter(BaseModel):
|
|
|
179
192
|
r"""Search Filter Values, if empty only \"running\" EC2 instances will be returned"""
|
|
180
193
|
|
|
181
194
|
|
|
182
|
-
class InputPrometheusAwsAuthenticationMethodAuthenticationMethod(
|
|
183
|
-
str, Enum, metaclass=utils.OpenEnumMeta
|
|
184
|
-
):
|
|
185
|
-
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
186
|
-
|
|
187
|
-
# Auto
|
|
188
|
-
AUTO = "auto"
|
|
189
|
-
# Manual
|
|
190
|
-
MANUAL = "manual"
|
|
191
|
-
# Secret Key pair
|
|
192
|
-
SECRET = "secret"
|
|
193
|
-
|
|
194
|
-
|
|
195
195
|
class InputPrometheusSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
196
196
|
r"""Signature version to use for signing EC2 requests"""
|
|
197
197
|
|
|
@@ -244,24 +244,27 @@ class InputPrometheusTypedDict(TypedDict):
|
|
|
244
244
|
description: NotRequired[str]
|
|
245
245
|
target_list: NotRequired[List[str]]
|
|
246
246
|
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'."""
|
|
247
|
-
name_list: NotRequired[List[str]]
|
|
248
|
-
r"""List of DNS names to resolve"""
|
|
249
247
|
record_type: NotRequired[InputPrometheusRecordType]
|
|
250
248
|
r"""DNS Record type to resolve"""
|
|
249
|
+
scrape_port: NotRequired[float]
|
|
250
|
+
r"""The port number in the metrics URL for discovered targets."""
|
|
251
|
+
name_list: NotRequired[List[str]]
|
|
252
|
+
r"""List of DNS names to resolve"""
|
|
251
253
|
scrape_protocol: NotRequired[MetricsProtocol]
|
|
252
254
|
r"""Protocol to use when collecting metrics"""
|
|
253
255
|
scrape_path: NotRequired[str]
|
|
254
256
|
r"""Path to use when collecting metrics from discovered targets"""
|
|
255
|
-
use_public_ip: NotRequired[bool]
|
|
256
|
-
r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
|
|
257
|
-
scrape_port: NotRequired[float]
|
|
258
|
-
r"""The port number in the metrics URL for discovered targets."""
|
|
259
|
-
search_filter: NotRequired[List[InputPrometheusSearchFilterTypedDict]]
|
|
260
|
-
r"""EC2 Instance Search Filter"""
|
|
261
257
|
aws_authentication_method: NotRequired[
|
|
262
258
|
InputPrometheusAwsAuthenticationMethodAuthenticationMethod
|
|
263
259
|
]
|
|
264
260
|
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
261
|
+
aws_api_key: NotRequired[str]
|
|
262
|
+
aws_secret: NotRequired[str]
|
|
263
|
+
r"""Select or create a stored secret that references your access key and secret key"""
|
|
264
|
+
use_public_ip: NotRequired[bool]
|
|
265
|
+
r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
|
|
266
|
+
search_filter: NotRequired[List[InputPrometheusSearchFilterTypedDict]]
|
|
267
|
+
r"""EC2 Instance Search Filter"""
|
|
265
268
|
aws_secret_key: NotRequired[str]
|
|
266
269
|
region: NotRequired[str]
|
|
267
270
|
r"""Region where the EC2 is located"""
|
|
@@ -387,9 +390,6 @@ class InputPrometheus(BaseModel):
|
|
|
387
390
|
)
|
|
388
391
|
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'."""
|
|
389
392
|
|
|
390
|
-
name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
|
|
391
|
-
r"""List of DNS names to resolve"""
|
|
392
|
-
|
|
393
393
|
record_type: Annotated[
|
|
394
394
|
Annotated[
|
|
395
395
|
Optional[InputPrometheusRecordType],
|
|
@@ -399,6 +399,12 @@ class InputPrometheus(BaseModel):
|
|
|
399
399
|
] = InputPrometheusRecordType.SRV
|
|
400
400
|
r"""DNS Record type to resolve"""
|
|
401
401
|
|
|
402
|
+
scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
|
|
403
|
+
r"""The port number in the metrics URL for discovered targets."""
|
|
404
|
+
|
|
405
|
+
name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
|
|
406
|
+
r"""List of DNS names to resolve"""
|
|
407
|
+
|
|
402
408
|
scrape_protocol: Annotated[
|
|
403
409
|
Annotated[Optional[MetricsProtocol], PlainValidator(validate_open_enum(False))],
|
|
404
410
|
pydantic.Field(alias="scrapeProtocol"),
|
|
@@ -410,18 +416,6 @@ class InputPrometheus(BaseModel):
|
|
|
410
416
|
)
|
|
411
417
|
r"""Path to use when collecting metrics from discovered targets"""
|
|
412
418
|
|
|
413
|
-
use_public_ip: Annotated[Optional[bool], pydantic.Field(alias="usePublicIp")] = True
|
|
414
|
-
r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
|
|
415
|
-
|
|
416
|
-
scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
|
|
417
|
-
r"""The port number in the metrics URL for discovered targets."""
|
|
418
|
-
|
|
419
|
-
search_filter: Annotated[
|
|
420
|
-
Optional[List[InputPrometheusSearchFilter]],
|
|
421
|
-
pydantic.Field(alias="searchFilter"),
|
|
422
|
-
] = None
|
|
423
|
-
r"""EC2 Instance Search Filter"""
|
|
424
|
-
|
|
425
419
|
aws_authentication_method: Annotated[
|
|
426
420
|
Annotated[
|
|
427
421
|
Optional[InputPrometheusAwsAuthenticationMethodAuthenticationMethod],
|
|
@@ -431,6 +425,20 @@ class InputPrometheus(BaseModel):
|
|
|
431
425
|
] = InputPrometheusAwsAuthenticationMethodAuthenticationMethod.AUTO
|
|
432
426
|
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
433
427
|
|
|
428
|
+
aws_api_key: Annotated[Optional[str], pydantic.Field(alias="awsApiKey")] = None
|
|
429
|
+
|
|
430
|
+
aws_secret: Annotated[Optional[str], pydantic.Field(alias="awsSecret")] = None
|
|
431
|
+
r"""Select or create a stored secret that references your access key and secret key"""
|
|
432
|
+
|
|
433
|
+
use_public_ip: Annotated[Optional[bool], pydantic.Field(alias="usePublicIp")] = True
|
|
434
|
+
r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
|
|
435
|
+
|
|
436
|
+
search_filter: Annotated[
|
|
437
|
+
Optional[List[InputPrometheusSearchFilter]],
|
|
438
|
+
pydantic.Field(alias="searchFilter"),
|
|
439
|
+
] = None
|
|
440
|
+
r"""EC2 Instance Search Filter"""
|
|
441
|
+
|
|
434
442
|
aws_secret_key: Annotated[Optional[str], pydantic.Field(alias="awsSecretKey")] = (
|
|
435
443
|
None
|
|
436
444
|
)
|
|
@@ -7,7 +7,7 @@ from cribl_control_plane.utils import validate_open_enum
|
|
|
7
7
|
from enum import Enum
|
|
8
8
|
import pydantic
|
|
9
9
|
from pydantic.functional_validators import PlainValidator
|
|
10
|
-
from typing import
|
|
10
|
+
from typing import List, Optional
|
|
11
11
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
12
|
|
|
13
13
|
|
|
@@ -124,6 +124,12 @@ class InputPrometheusRwMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta
|
|
|
124
124
|
|
|
125
125
|
class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
|
|
126
126
|
disabled: NotRequired[bool]
|
|
127
|
+
request_cert: NotRequired[bool]
|
|
128
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
129
|
+
reject_unauthorized: NotRequired[bool]
|
|
130
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
131
|
+
common_name_regex: NotRequired[str]
|
|
132
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
127
133
|
certificate_name: NotRequired[str]
|
|
128
134
|
r"""The name of the predefined certificate"""
|
|
129
135
|
priv_key_path: NotRequired[str]
|
|
@@ -134,10 +140,6 @@ class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
134
140
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
135
141
|
ca_path: NotRequired[str]
|
|
136
142
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
137
|
-
request_cert: NotRequired[bool]
|
|
138
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
139
|
-
reject_unauthorized: NotRequired[Any]
|
|
140
|
-
common_name_regex: NotRequired[Any]
|
|
141
143
|
min_version: NotRequired[InputPrometheusRwMinimumTLSVersion]
|
|
142
144
|
max_version: NotRequired[InputPrometheusRwMaximumTLSVersion]
|
|
143
145
|
|
|
@@ -145,6 +147,19 @@ class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
145
147
|
class InputPrometheusRwTLSSettingsServerSide(BaseModel):
|
|
146
148
|
disabled: Optional[bool] = True
|
|
147
149
|
|
|
150
|
+
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
151
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
152
|
+
|
|
153
|
+
reject_unauthorized: Annotated[
|
|
154
|
+
Optional[bool], pydantic.Field(alias="rejectUnauthorized")
|
|
155
|
+
] = True
|
|
156
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
157
|
+
|
|
158
|
+
common_name_regex: Annotated[
|
|
159
|
+
Optional[str], pydantic.Field(alias="commonNameRegex")
|
|
160
|
+
] = "/.*/"
|
|
161
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
162
|
+
|
|
148
163
|
certificate_name: Annotated[
|
|
149
164
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
150
165
|
] = None
|
|
@@ -162,17 +177,6 @@ class InputPrometheusRwTLSSettingsServerSide(BaseModel):
|
|
|
162
177
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
163
178
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
164
179
|
|
|
165
|
-
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
166
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
167
|
-
|
|
168
|
-
reject_unauthorized: Annotated[
|
|
169
|
-
Optional[Any], pydantic.Field(alias="rejectUnauthorized")
|
|
170
|
-
] = None
|
|
171
|
-
|
|
172
|
-
common_name_regex: Annotated[
|
|
173
|
-
Optional[Any], pydantic.Field(alias="commonNameRegex")
|
|
174
|
-
] = None
|
|
175
|
-
|
|
176
180
|
min_version: Annotated[
|
|
177
181
|
Annotated[
|
|
178
182
|
Optional[InputPrometheusRwMinimumTLSVersion],
|