cribl-control-plane 0.2.1rc4__py3-none-any.whl → 0.2.1rc6__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/groups_sdk.py +2 -2
- cribl_control_plane/models/__init__.py +3 -99
- cribl_control_plane/models/createconfiggroupbyproductop.py +2 -2
- cribl_control_plane/models/input.py +14 -14
- cribl_control_plane/models/inputappscope.py +16 -20
- cribl_control_plane/models/inputconfluentcloud.py +0 -110
- cribl_control_plane/models/inputcriblhttp.py +16 -20
- cribl_control_plane/models/inputcribllakehttp.py +16 -20
- cribl_control_plane/models/inputcribltcp.py +16 -20
- cribl_control_plane/models/inputdatadogagent.py +16 -20
- cribl_control_plane/models/inputedgeprometheus.py +36 -44
- cribl_control_plane/models/inputelastic.py +27 -44
- cribl_control_plane/models/inputeventhub.py +0 -118
- cribl_control_plane/models/inputfirehose.py +16 -20
- cribl_control_plane/models/inputgrafana.py +31 -39
- cribl_control_plane/models/inputhttp.py +16 -20
- cribl_control_plane/models/inputhttpraw.py +16 -20
- cribl_control_plane/models/inputkafka.py +0 -108
- cribl_control_plane/models/inputloki.py +16 -20
- cribl_control_plane/models/inputmetrics.py +16 -20
- cribl_control_plane/models/inputmodeldriventelemetry.py +16 -20
- cribl_control_plane/models/inputopentelemetry.py +15 -19
- cribl_control_plane/models/inputprometheus.py +36 -44
- cribl_control_plane/models/inputprometheusrw.py +16 -20
- cribl_control_plane/models/inputsplunk.py +16 -20
- cribl_control_plane/models/inputsplunkhec.py +15 -19
- cribl_control_plane/models/inputsyslog.py +31 -39
- cribl_control_plane/models/inputsystemmetrics.py +10 -20
- cribl_control_plane/models/inputtcp.py +16 -30
- cribl_control_plane/models/inputtcpjson.py +16 -20
- cribl_control_plane/models/inputwindowsmetrics.py +10 -20
- cribl_control_plane/models/inputwineventlogs.py +0 -14
- cribl_control_plane/models/inputwizwebhook.py +16 -20
- cribl_control_plane/models/inputzscalerhec.py +15 -19
- cribl_control_plane/models/output.py +22 -22
- cribl_control_plane/models/outputazureblob.py +0 -7
- cribl_control_plane/models/outputazuredataexplorer.py +93 -283
- cribl_control_plane/models/outputazureeventhub.py +21 -169
- cribl_control_plane/models/outputazurelogs.py +21 -49
- cribl_control_plane/models/outputchronicle.py +21 -49
- cribl_control_plane/models/outputclickhouse.py +21 -49
- cribl_control_plane/models/outputcloudwatch.py +21 -49
- cribl_control_plane/models/outputconfluentcloud.py +22 -167
- cribl_control_plane/models/outputcriblhttp.py +21 -49
- cribl_control_plane/models/outputcribltcp.py +21 -49
- cribl_control_plane/models/outputcrowdstrikenextgensiem.py +22 -50
- cribl_control_plane/models/outputdatabricks.py +0 -7
- cribl_control_plane/models/outputdatadog.py +21 -49
- cribl_control_plane/models/outputdataset.py +21 -49
- cribl_control_plane/models/outputdls3.py +0 -7
- cribl_control_plane/models/outputdynatracehttp.py +21 -49
- cribl_control_plane/models/outputdynatraceotlp.py +21 -49
- cribl_control_plane/models/outputelastic.py +21 -74
- cribl_control_plane/models/outputelasticcloud.py +21 -74
- cribl_control_plane/models/outputfilesystem.py +0 -7
- cribl_control_plane/models/outputgooglechronicle.py +22 -65
- cribl_control_plane/models/outputgooglecloudlogging.py +22 -50
- cribl_control_plane/models/outputgooglecloudstorage.py +0 -7
- cribl_control_plane/models/outputgooglepubsub.py +21 -49
- cribl_control_plane/models/outputgrafanacloud.py +42 -98
- cribl_control_plane/models/outputgraphite.py +21 -49
- cribl_control_plane/models/outputhoneycomb.py +21 -49
- cribl_control_plane/models/outputhumiohec.py +21 -49
- cribl_control_plane/models/outputinfluxdb.py +21 -49
- cribl_control_plane/models/outputkafka.py +19 -162
- cribl_control_plane/models/outputkinesis.py +21 -56
- cribl_control_plane/models/outputloki.py +19 -47
- cribl_control_plane/models/outputminio.py +0 -7
- cribl_control_plane/models/outputmsk.py +19 -54
- cribl_control_plane/models/outputnewrelic.py +21 -49
- cribl_control_plane/models/outputnewrelicevents.py +22 -50
- cribl_control_plane/models/outputopentelemetry.py +21 -49
- cribl_control_plane/models/outputprometheus.py +21 -49
- cribl_control_plane/models/outputs3.py +0 -7
- cribl_control_plane/models/outputsentinel.py +21 -49
- cribl_control_plane/models/outputsentineloneaisiem.py +22 -50
- cribl_control_plane/models/outputservicenow.py +21 -49
- cribl_control_plane/models/outputsignalfx.py +21 -49
- cribl_control_plane/models/outputsns.py +19 -47
- cribl_control_plane/models/outputsplunk.py +21 -49
- cribl_control_plane/models/outputsplunkhec.py +21 -49
- cribl_control_plane/models/outputsplunklb.py +21 -49
- cribl_control_plane/models/outputsqs.py +19 -47
- cribl_control_plane/models/outputstatsd.py +21 -49
- cribl_control_plane/models/outputstatsdext.py +21 -49
- cribl_control_plane/models/outputsumologic.py +21 -49
- cribl_control_plane/models/outputsyslog.py +99 -129
- cribl_control_plane/models/outputtcpjson.py +21 -49
- cribl_control_plane/models/outputwavefront.py +21 -49
- cribl_control_plane/models/outputwebhook.py +21 -49
- cribl_control_plane/models/outputxsiam.py +19 -47
- cribl_control_plane/models/runnablejobcollection.py +8 -12
- cribl_control_plane/models/runnablejobexecutor.py +8 -12
- cribl_control_plane/models/runnablejobscheduledsearch.py +8 -12
- {cribl_control_plane-0.2.1rc4.dist-info → cribl_control_plane-0.2.1rc6.dist-info}/METADATA +1 -1
- {cribl_control_plane-0.2.1rc4.dist-info → cribl_control_plane-0.2.1rc6.dist-info}/RECORD +98 -98
- {cribl_control_plane-0.2.1rc4.dist-info → cribl_control_plane-0.2.1rc6.dist-info}/WHEEL +0 -0
|
@@ -255,13 +255,6 @@ 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
|
-
|
|
265
258
|
class InputKafkaSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
266
259
|
# PLAIN
|
|
267
260
|
PLAIN = "plain"
|
|
@@ -273,58 +266,13 @@ class InputKafkaSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
273
266
|
KERBEROS = "kerberos"
|
|
274
267
|
|
|
275
268
|
|
|
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
|
-
|
|
298
269
|
class InputKafkaAuthenticationTypedDict(TypedDict):
|
|
299
270
|
r"""Authentication parameters to use when connecting to brokers. Using TLS is highly recommended."""
|
|
300
271
|
|
|
301
272
|
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"""
|
|
308
273
|
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`"""
|
|
315
274
|
oauth_enabled: NotRequired[bool]
|
|
316
275
|
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"""
|
|
328
276
|
|
|
329
277
|
|
|
330
278
|
class InputKafkaAuthentication(BaseModel):
|
|
@@ -332,71 +280,15 @@ class InputKafkaAuthentication(BaseModel):
|
|
|
332
280
|
|
|
333
281
|
disabled: Optional[bool] = True
|
|
334
282
|
|
|
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
|
-
|
|
353
283
|
mechanism: Annotated[
|
|
354
284
|
Optional[InputKafkaSASLMechanism], PlainValidator(validate_open_enum(False))
|
|
355
285
|
] = InputKafkaSASLMechanism.PLAIN
|
|
356
286
|
|
|
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
|
-
|
|
370
287
|
oauth_enabled: Annotated[Optional[bool], pydantic.Field(alias="oauthEnabled")] = (
|
|
371
288
|
False
|
|
372
289
|
)
|
|
373
290
|
r"""Enable OAuth authentication"""
|
|
374
291
|
|
|
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
|
-
|
|
400
292
|
|
|
401
293
|
class InputKafkaMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
402
294
|
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 List, Optional
|
|
10
|
+
from typing import Any, List, Optional
|
|
11
11
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
12
|
|
|
13
13
|
|
|
@@ -123,12 +123,6 @@ 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"""
|
|
132
126
|
certificate_name: NotRequired[str]
|
|
133
127
|
r"""The name of the predefined certificate"""
|
|
134
128
|
priv_key_path: NotRequired[str]
|
|
@@ -139,6 +133,10 @@ class InputLokiTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
139
133
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
140
134
|
ca_path: NotRequired[str]
|
|
141
135
|
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]
|
|
142
140
|
min_version: NotRequired[InputLokiMinimumTLSVersion]
|
|
143
141
|
max_version: NotRequired[InputLokiMaximumTLSVersion]
|
|
144
142
|
|
|
@@ -146,19 +144,6 @@ class InputLokiTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
146
144
|
class InputLokiTLSSettingsServerSide(BaseModel):
|
|
147
145
|
disabled: Optional[bool] = True
|
|
148
146
|
|
|
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
|
-
|
|
162
147
|
certificate_name: Annotated[
|
|
163
148
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
164
149
|
] = None
|
|
@@ -176,6 +161,17 @@ class InputLokiTLSSettingsServerSide(BaseModel):
|
|
|
176
161
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
177
162
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
178
163
|
|
|
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
|
+
|
|
179
175
|
min_version: Annotated[
|
|
180
176
|
Annotated[
|
|
181
177
|
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 List, Optional
|
|
10
|
+
from typing import Any, List, Optional
|
|
11
11
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
12
|
|
|
13
13
|
|
|
@@ -123,12 +123,6 @@ 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"""
|
|
132
126
|
certificate_name: NotRequired[str]
|
|
133
127
|
r"""The name of the predefined certificate"""
|
|
134
128
|
priv_key_path: NotRequired[str]
|
|
@@ -139,6 +133,10 @@ class InputMetricsTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
139
133
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
140
134
|
ca_path: NotRequired[str]
|
|
141
135
|
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]
|
|
142
140
|
min_version: NotRequired[InputMetricsMinimumTLSVersion]
|
|
143
141
|
max_version: NotRequired[InputMetricsMaximumTLSVersion]
|
|
144
142
|
|
|
@@ -146,19 +144,6 @@ class InputMetricsTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
146
144
|
class InputMetricsTLSSettingsServerSide(BaseModel):
|
|
147
145
|
disabled: Optional[bool] = True
|
|
148
146
|
|
|
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
|
-
|
|
162
147
|
certificate_name: Annotated[
|
|
163
148
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
164
149
|
] = None
|
|
@@ -176,6 +161,17 @@ class InputMetricsTLSSettingsServerSide(BaseModel):
|
|
|
176
161
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
177
162
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
178
163
|
|
|
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
|
+
|
|
179
175
|
min_version: Annotated[
|
|
180
176
|
Annotated[
|
|
181
177
|
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 List, Optional
|
|
10
|
+
from typing import Any, List, Optional
|
|
11
11
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
12
|
|
|
13
13
|
|
|
@@ -130,12 +130,6 @@ 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"""
|
|
139
133
|
certificate_name: NotRequired[str]
|
|
140
134
|
r"""The name of the predefined certificate"""
|
|
141
135
|
priv_key_path: NotRequired[str]
|
|
@@ -146,6 +140,10 @@ class InputModelDrivenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
146
140
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
147
141
|
ca_path: NotRequired[str]
|
|
148
142
|
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]
|
|
149
147
|
min_version: NotRequired[InputModelDrivenTelemetryMinimumTLSVersion]
|
|
150
148
|
max_version: NotRequired[InputModelDrivenTelemetryMaximumTLSVersion]
|
|
151
149
|
|
|
@@ -153,19 +151,6 @@ class InputModelDrivenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
153
151
|
class InputModelDrivenTelemetryTLSSettingsServerSide(BaseModel):
|
|
154
152
|
disabled: Optional[bool] = True
|
|
155
153
|
|
|
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
|
-
|
|
169
154
|
certificate_name: Annotated[
|
|
170
155
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
171
156
|
] = None
|
|
@@ -183,6 +168,17 @@ class InputModelDrivenTelemetryTLSSettingsServerSide(BaseModel):
|
|
|
183
168
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
184
169
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
185
170
|
|
|
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
|
+
|
|
186
182
|
min_version: Annotated[
|
|
187
183
|
Annotated[
|
|
188
184
|
Optional[InputModelDrivenTelemetryMinimumTLSVersion],
|
|
@@ -124,12 +124,6 @@ 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"""
|
|
133
127
|
certificate_name: NotRequired[str]
|
|
134
128
|
r"""The name of the predefined certificate"""
|
|
135
129
|
priv_key_path: NotRequired[str]
|
|
@@ -140,6 +134,10 @@ class InputOpenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
140
134
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
141
135
|
ca_path: NotRequired[str]
|
|
142
136
|
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]
|
|
143
141
|
min_version: NotRequired[InputOpenTelemetryMinimumTLSVersion]
|
|
144
142
|
max_version: NotRequired[InputOpenTelemetryMaximumTLSVersion]
|
|
145
143
|
|
|
@@ -147,19 +145,6 @@ class InputOpenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
147
145
|
class InputOpenTelemetryTLSSettingsServerSide(BaseModel):
|
|
148
146
|
disabled: Optional[bool] = True
|
|
149
147
|
|
|
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
|
-
|
|
163
148
|
certificate_name: Annotated[
|
|
164
149
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
165
150
|
] = None
|
|
@@ -177,6 +162,17 @@ class InputOpenTelemetryTLSSettingsServerSide(BaseModel):
|
|
|
177
162
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
178
163
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
179
164
|
|
|
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
|
+
|
|
180
176
|
min_version: Annotated[
|
|
181
177
|
Annotated[
|
|
182
178
|
Optional[InputOpenTelemetryMinimumTLSVersion],
|
|
@@ -164,19 +164,6 @@ 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
|
-
|
|
180
167
|
class InputPrometheusSearchFilterTypedDict(TypedDict):
|
|
181
168
|
name: str
|
|
182
169
|
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"""
|
|
@@ -192,6 +179,19 @@ class InputPrometheusSearchFilter(BaseModel):
|
|
|
192
179
|
r"""Search Filter Values, if empty only \"running\" EC2 instances will be returned"""
|
|
193
180
|
|
|
194
181
|
|
|
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,27 +244,24 @@ 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
|
-
record_type: NotRequired[InputPrometheusRecordType]
|
|
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
247
|
name_list: NotRequired[List[str]]
|
|
252
248
|
r"""List of DNS names to resolve"""
|
|
249
|
+
record_type: NotRequired[InputPrometheusRecordType]
|
|
250
|
+
r"""DNS Record type to resolve"""
|
|
253
251
|
scrape_protocol: NotRequired[MetricsProtocol]
|
|
254
252
|
r"""Protocol to use when collecting metrics"""
|
|
255
253
|
scrape_path: NotRequired[str]
|
|
256
254
|
r"""Path to use when collecting metrics from discovered targets"""
|
|
257
|
-
aws_authentication_method: NotRequired[
|
|
258
|
-
InputPrometheusAwsAuthenticationMethodAuthenticationMethod
|
|
259
|
-
]
|
|
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
255
|
use_public_ip: NotRequired[bool]
|
|
265
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."""
|
|
266
259
|
search_filter: NotRequired[List[InputPrometheusSearchFilterTypedDict]]
|
|
267
260
|
r"""EC2 Instance Search Filter"""
|
|
261
|
+
aws_authentication_method: NotRequired[
|
|
262
|
+
InputPrometheusAwsAuthenticationMethodAuthenticationMethod
|
|
263
|
+
]
|
|
264
|
+
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
268
265
|
aws_secret_key: NotRequired[str]
|
|
269
266
|
region: NotRequired[str]
|
|
270
267
|
r"""Region where the EC2 is located"""
|
|
@@ -390,6 +387,9 @@ class InputPrometheus(BaseModel):
|
|
|
390
387
|
)
|
|
391
388
|
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'."""
|
|
392
389
|
|
|
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,12 +399,6 @@ 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
|
-
|
|
408
402
|
scrape_protocol: Annotated[
|
|
409
403
|
Annotated[Optional[MetricsProtocol], PlainValidator(validate_open_enum(False))],
|
|
410
404
|
pydantic.Field(alias="scrapeProtocol"),
|
|
@@ -416,29 +410,27 @@ class InputPrometheus(BaseModel):
|
|
|
416
410
|
)
|
|
417
411
|
r"""Path to use when collecting metrics from discovered targets"""
|
|
418
412
|
|
|
419
|
-
aws_authentication_method: Annotated[
|
|
420
|
-
Annotated[
|
|
421
|
-
Optional[InputPrometheusAwsAuthenticationMethodAuthenticationMethod],
|
|
422
|
-
PlainValidator(validate_open_enum(False)),
|
|
423
|
-
],
|
|
424
|
-
pydantic.Field(alias="awsAuthenticationMethod"),
|
|
425
|
-
] = InputPrometheusAwsAuthenticationMethodAuthenticationMethod.AUTO
|
|
426
|
-
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
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
413
|
use_public_ip: Annotated[Optional[bool], pydantic.Field(alias="usePublicIp")] = True
|
|
434
414
|
r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
|
|
435
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
|
+
|
|
436
419
|
search_filter: Annotated[
|
|
437
420
|
Optional[List[InputPrometheusSearchFilter]],
|
|
438
421
|
pydantic.Field(alias="searchFilter"),
|
|
439
422
|
] = None
|
|
440
423
|
r"""EC2 Instance Search Filter"""
|
|
441
424
|
|
|
425
|
+
aws_authentication_method: Annotated[
|
|
426
|
+
Annotated[
|
|
427
|
+
Optional[InputPrometheusAwsAuthenticationMethodAuthenticationMethod],
|
|
428
|
+
PlainValidator(validate_open_enum(False)),
|
|
429
|
+
],
|
|
430
|
+
pydantic.Field(alias="awsAuthenticationMethod"),
|
|
431
|
+
] = InputPrometheusAwsAuthenticationMethodAuthenticationMethod.AUTO
|
|
432
|
+
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
433
|
+
|
|
442
434
|
aws_secret_key: Annotated[Optional[str], pydantic.Field(alias="awsSecretKey")] = (
|
|
443
435
|
None
|
|
444
436
|
)
|
|
@@ -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 List, Optional
|
|
10
|
+
from typing import Any, List, Optional
|
|
11
11
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
12
|
|
|
13
13
|
|
|
@@ -124,12 +124,6 @@ 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"""
|
|
133
127
|
certificate_name: NotRequired[str]
|
|
134
128
|
r"""The name of the predefined certificate"""
|
|
135
129
|
priv_key_path: NotRequired[str]
|
|
@@ -140,6 +134,10 @@ class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
140
134
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
141
135
|
ca_path: NotRequired[str]
|
|
142
136
|
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]
|
|
143
141
|
min_version: NotRequired[InputPrometheusRwMinimumTLSVersion]
|
|
144
142
|
max_version: NotRequired[InputPrometheusRwMaximumTLSVersion]
|
|
145
143
|
|
|
@@ -147,19 +145,6 @@ class InputPrometheusRwTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
147
145
|
class InputPrometheusRwTLSSettingsServerSide(BaseModel):
|
|
148
146
|
disabled: Optional[bool] = True
|
|
149
147
|
|
|
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
|
-
|
|
163
148
|
certificate_name: Annotated[
|
|
164
149
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
165
150
|
] = None
|
|
@@ -177,6 +162,17 @@ class InputPrometheusRwTLSSettingsServerSide(BaseModel):
|
|
|
177
162
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
178
163
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
179
164
|
|
|
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
|
+
|
|
180
176
|
min_version: Annotated[
|
|
181
177
|
Annotated[
|
|
182
178
|
Optional[InputPrometheusRwMinimumTLSVersion],
|