cribl-control-plane 0.2.1rc6__py3-none-any.whl → 0.2.1rc8__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 +4 -4
- cribl_control_plane/lakedatasets.py +28 -0
- cribl_control_plane/models/__init__.py +124 -5
- cribl_control_plane/models/cribllakedataset.py +4 -0
- cribl_control_plane/models/cribllakedatasetupdate.py +4 -0
- cribl_control_plane/models/input.py +15 -15
- 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/inputfile.py +10 -5
- 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/jobinfo.py +10 -4
- cribl_control_plane/models/jobstatus.py +24 -3
- cribl_control_plane/models/lakedatasetmetrics.py +17 -0
- cribl_control_plane/models/output.py +21 -21
- 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 +169 -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 +164 -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 +56 -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 +124 -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.1rc6.dist-info → cribl_control_plane-0.2.1rc8.dist-info}/METADATA +25 -7
- {cribl_control_plane-0.2.1rc6.dist-info → cribl_control_plane-0.2.1rc8.dist-info}/RECORD +103 -102
- {cribl_control_plane-0.2.1rc6.dist-info → cribl_control_plane-0.2.1rc8.dist-info}/WHEEL +0 -0
|
@@ -237,6 +237,19 @@ class ScrapeProtocolProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
237
237
|
HTTPS = "https"
|
|
238
238
|
|
|
239
239
|
|
|
240
|
+
class InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod(
|
|
241
|
+
str, Enum, metaclass=utils.OpenEnumMeta
|
|
242
|
+
):
|
|
243
|
+
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
244
|
+
|
|
245
|
+
# Auto
|
|
246
|
+
AUTO = "auto"
|
|
247
|
+
# Manual
|
|
248
|
+
MANUAL = "manual"
|
|
249
|
+
# Secret Key pair
|
|
250
|
+
SECRET = "secret"
|
|
251
|
+
|
|
252
|
+
|
|
240
253
|
class InputEdgePrometheusSearchFilterTypedDict(TypedDict):
|
|
241
254
|
name: str
|
|
242
255
|
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"""
|
|
@@ -252,19 +265,6 @@ class InputEdgePrometheusSearchFilter(BaseModel):
|
|
|
252
265
|
r"""Search Filter Values, if empty only \"running\" EC2 instances will be returned"""
|
|
253
266
|
|
|
254
267
|
|
|
255
|
-
class InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod(
|
|
256
|
-
str, Enum, metaclass=utils.OpenEnumMeta
|
|
257
|
-
):
|
|
258
|
-
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
259
|
-
|
|
260
|
-
# Auto
|
|
261
|
-
AUTO = "auto"
|
|
262
|
-
# Manual
|
|
263
|
-
MANUAL = "manual"
|
|
264
|
-
# Secret Key pair
|
|
265
|
-
SECRET = "secret"
|
|
266
|
-
|
|
267
|
-
|
|
268
268
|
class InputEdgePrometheusSignatureVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
269
269
|
r"""Signature version to use for signing EC2 requests"""
|
|
270
270
|
|
|
@@ -320,24 +320,27 @@ class InputEdgePrometheusTypedDict(TypedDict):
|
|
|
320
320
|
r"""Enter credentials directly, or select a stored secret"""
|
|
321
321
|
description: NotRequired[str]
|
|
322
322
|
targets: NotRequired[List[TargetTypedDict]]
|
|
323
|
-
name_list: NotRequired[List[str]]
|
|
324
|
-
r"""List of DNS names to resolve"""
|
|
325
323
|
record_type: NotRequired[InputEdgePrometheusRecordType]
|
|
326
324
|
r"""DNS Record type to resolve"""
|
|
325
|
+
scrape_port: NotRequired[float]
|
|
326
|
+
r"""The port number in the metrics URL for discovered targets."""
|
|
327
|
+
name_list: NotRequired[List[str]]
|
|
328
|
+
r"""List of DNS names to resolve"""
|
|
327
329
|
scrape_protocol: NotRequired[ScrapeProtocolProtocol]
|
|
328
330
|
r"""Protocol to use when collecting metrics"""
|
|
329
331
|
scrape_path: NotRequired[str]
|
|
330
332
|
r"""Path to use when collecting metrics from discovered targets"""
|
|
331
|
-
use_public_ip: NotRequired[bool]
|
|
332
|
-
r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
|
|
333
|
-
scrape_port: NotRequired[float]
|
|
334
|
-
r"""The port number in the metrics URL for discovered targets."""
|
|
335
|
-
search_filter: NotRequired[List[InputEdgePrometheusSearchFilterTypedDict]]
|
|
336
|
-
r"""EC2 Instance Search Filter"""
|
|
337
333
|
aws_authentication_method: NotRequired[
|
|
338
334
|
InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod
|
|
339
335
|
]
|
|
340
336
|
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
337
|
+
aws_api_key: NotRequired[str]
|
|
338
|
+
aws_secret: NotRequired[str]
|
|
339
|
+
r"""Select or create a stored secret that references your access key and secret key"""
|
|
340
|
+
use_public_ip: NotRequired[bool]
|
|
341
|
+
r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
|
|
342
|
+
search_filter: NotRequired[List[InputEdgePrometheusSearchFilterTypedDict]]
|
|
343
|
+
r"""EC2 Instance Search Filter"""
|
|
341
344
|
aws_secret_key: NotRequired[str]
|
|
342
345
|
region: NotRequired[str]
|
|
343
346
|
r"""Region where the EC2 is located"""
|
|
@@ -445,9 +448,6 @@ class InputEdgePrometheus(BaseModel):
|
|
|
445
448
|
|
|
446
449
|
targets: Optional[List[Target]] = None
|
|
447
450
|
|
|
448
|
-
name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
|
|
449
|
-
r"""List of DNS names to resolve"""
|
|
450
|
-
|
|
451
451
|
record_type: Annotated[
|
|
452
452
|
Annotated[
|
|
453
453
|
Optional[InputEdgePrometheusRecordType],
|
|
@@ -457,6 +457,12 @@ class InputEdgePrometheus(BaseModel):
|
|
|
457
457
|
] = InputEdgePrometheusRecordType.SRV
|
|
458
458
|
r"""DNS Record type to resolve"""
|
|
459
459
|
|
|
460
|
+
scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
|
|
461
|
+
r"""The port number in the metrics URL for discovered targets."""
|
|
462
|
+
|
|
463
|
+
name_list: Annotated[Optional[List[str]], pydantic.Field(alias="nameList")] = None
|
|
464
|
+
r"""List of DNS names to resolve"""
|
|
465
|
+
|
|
460
466
|
scrape_protocol: Annotated[
|
|
461
467
|
Annotated[
|
|
462
468
|
Optional[ScrapeProtocolProtocol], PlainValidator(validate_open_enum(False))
|
|
@@ -470,18 +476,6 @@ class InputEdgePrometheus(BaseModel):
|
|
|
470
476
|
)
|
|
471
477
|
r"""Path to use when collecting metrics from discovered targets"""
|
|
472
478
|
|
|
473
|
-
use_public_ip: Annotated[Optional[bool], pydantic.Field(alias="usePublicIp")] = True
|
|
474
|
-
r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
|
|
475
|
-
|
|
476
|
-
scrape_port: Annotated[Optional[float], pydantic.Field(alias="scrapePort")] = 9090
|
|
477
|
-
r"""The port number in the metrics URL for discovered targets."""
|
|
478
|
-
|
|
479
|
-
search_filter: Annotated[
|
|
480
|
-
Optional[List[InputEdgePrometheusSearchFilter]],
|
|
481
|
-
pydantic.Field(alias="searchFilter"),
|
|
482
|
-
] = None
|
|
483
|
-
r"""EC2 Instance Search Filter"""
|
|
484
|
-
|
|
485
479
|
aws_authentication_method: Annotated[
|
|
486
480
|
Annotated[
|
|
487
481
|
Optional[InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod],
|
|
@@ -491,6 +485,20 @@ class InputEdgePrometheus(BaseModel):
|
|
|
491
485
|
] = InputEdgePrometheusAwsAuthenticationMethodAuthenticationMethod.AUTO
|
|
492
486
|
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
493
487
|
|
|
488
|
+
aws_api_key: Annotated[Optional[str], pydantic.Field(alias="awsApiKey")] = None
|
|
489
|
+
|
|
490
|
+
aws_secret: Annotated[Optional[str], pydantic.Field(alias="awsSecret")] = None
|
|
491
|
+
r"""Select or create a stored secret that references your access key and secret key"""
|
|
492
|
+
|
|
493
|
+
use_public_ip: Annotated[Optional[bool], pydantic.Field(alias="usePublicIp")] = True
|
|
494
|
+
r"""Use public IP address for discovered targets. Set to false if the private IP address should be used."""
|
|
495
|
+
|
|
496
|
+
search_filter: Annotated[
|
|
497
|
+
Optional[List[InputEdgePrometheusSearchFilter]],
|
|
498
|
+
pydantic.Field(alias="searchFilter"),
|
|
499
|
+
] = None
|
|
500
|
+
r"""EC2 Instance Search Filter"""
|
|
501
|
+
|
|
494
502
|
aws_secret_key: Annotated[Optional[str], pydantic.Field(alias="awsSecretKey")] = (
|
|
495
503
|
None
|
|
496
504
|
)
|
|
@@ -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 InputElasticMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
123
123
|
|
|
124
124
|
class InputElasticTLSSettingsServerSideTypedDict(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 InputElasticTLSSettingsServerSideTypedDict(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[InputElasticMinimumTLSVersion]
|
|
141
143
|
max_version: NotRequired[InputElasticMaximumTLSVersion]
|
|
142
144
|
|
|
@@ -144,6 +146,19 @@ class InputElasticTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
144
146
|
class InputElasticTLSSettingsServerSide(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 InputElasticTLSSettingsServerSide(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[InputElasticMinimumTLSVersion],
|
|
@@ -246,6 +250,12 @@ class InputElasticAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
246
250
|
class InputElasticProxyModeTypedDict(TypedDict):
|
|
247
251
|
enabled: NotRequired[bool]
|
|
248
252
|
r"""Enable proxying of non-bulk API requests to an external Elastic server. Enable this only if you understand the implications. See [Cribl Docs](https://docs.cribl.io/stream/sources-elastic/#proxy-mode) for more details."""
|
|
253
|
+
auth_type: NotRequired[InputElasticAuthenticationMethod]
|
|
254
|
+
r"""Enter credentials directly, or select a stored secret"""
|
|
255
|
+
username: NotRequired[str]
|
|
256
|
+
password: NotRequired[str]
|
|
257
|
+
credentials_secret: NotRequired[str]
|
|
258
|
+
r"""Select or create a secret that references your credentials"""
|
|
249
259
|
url: NotRequired[str]
|
|
250
260
|
r"""URL of the Elastic server to proxy non-bulk requests to, such as http://elastic:9200"""
|
|
251
261
|
reject_unauthorized: NotRequired[bool]
|
|
@@ -254,14 +264,30 @@ class InputElasticProxyModeTypedDict(TypedDict):
|
|
|
254
264
|
r"""List of headers to remove from the request to proxy"""
|
|
255
265
|
timeout_sec: NotRequired[float]
|
|
256
266
|
r"""Amount of time, in seconds, to wait for a proxy request to complete before canceling it"""
|
|
257
|
-
auth_type: NotRequired[InputElasticAuthenticationMethod]
|
|
258
|
-
r"""Enter credentials directly, or select a stored secret"""
|
|
259
267
|
|
|
260
268
|
|
|
261
269
|
class InputElasticProxyMode(BaseModel):
|
|
262
270
|
enabled: Optional[bool] = False
|
|
263
271
|
r"""Enable proxying of non-bulk API requests to an external Elastic server. Enable this only if you understand the implications. See [Cribl Docs](https://docs.cribl.io/stream/sources-elastic/#proxy-mode) for more details."""
|
|
264
272
|
|
|
273
|
+
auth_type: Annotated[
|
|
274
|
+
Annotated[
|
|
275
|
+
Optional[InputElasticAuthenticationMethod],
|
|
276
|
+
PlainValidator(validate_open_enum(False)),
|
|
277
|
+
],
|
|
278
|
+
pydantic.Field(alias="authType"),
|
|
279
|
+
] = InputElasticAuthenticationMethod.NONE
|
|
280
|
+
r"""Enter credentials directly, or select a stored secret"""
|
|
281
|
+
|
|
282
|
+
username: Optional[str] = None
|
|
283
|
+
|
|
284
|
+
password: Optional[str] = None
|
|
285
|
+
|
|
286
|
+
credentials_secret: Annotated[
|
|
287
|
+
Optional[str], pydantic.Field(alias="credentialsSecret")
|
|
288
|
+
] = None
|
|
289
|
+
r"""Select or create a secret that references your credentials"""
|
|
290
|
+
|
|
265
291
|
url: Optional[str] = None
|
|
266
292
|
r"""URL of the Elastic server to proxy non-bulk requests to, such as http://elastic:9200"""
|
|
267
293
|
|
|
@@ -278,15 +304,6 @@ class InputElasticProxyMode(BaseModel):
|
|
|
278
304
|
timeout_sec: Annotated[Optional[float], pydantic.Field(alias="timeoutSec")] = 60
|
|
279
305
|
r"""Amount of time, in seconds, to wait for a proxy request to complete before canceling it"""
|
|
280
306
|
|
|
281
|
-
auth_type: Annotated[
|
|
282
|
-
Annotated[
|
|
283
|
-
Optional[InputElasticAuthenticationMethod],
|
|
284
|
-
PlainValidator(validate_open_enum(False)),
|
|
285
|
-
],
|
|
286
|
-
pydantic.Field(alias="authType"),
|
|
287
|
-
] = InputElasticAuthenticationMethod.NONE
|
|
288
|
-
r"""Enter credentials directly, or select a stored secret"""
|
|
289
|
-
|
|
290
307
|
|
|
291
308
|
class InputElasticTypedDict(TypedDict):
|
|
292
309
|
type: InputElasticType
|
|
@@ -107,6 +107,15 @@ class InputEventhubPq(BaseModel):
|
|
|
107
107
|
] = None
|
|
108
108
|
|
|
109
109
|
|
|
110
|
+
class InputEventhubAuthTypeAuthenticationMethod(
|
|
111
|
+
str, Enum, metaclass=utils.OpenEnumMeta
|
|
112
|
+
):
|
|
113
|
+
r"""Enter password directly, or select a stored secret"""
|
|
114
|
+
|
|
115
|
+
MANUAL = "manual"
|
|
116
|
+
SECRET = "secret"
|
|
117
|
+
|
|
118
|
+
|
|
110
119
|
class InputEventhubSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
111
120
|
# PLAIN
|
|
112
121
|
PLAIN = "plain"
|
|
@@ -114,11 +123,57 @@ class InputEventhubSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
114
123
|
OAUTHBEARER = "oauthbearer"
|
|
115
124
|
|
|
116
125
|
|
|
126
|
+
class InputEventhubClientSecretAuthTypeAuthenticationMethod(
|
|
127
|
+
str, Enum, metaclass=utils.OpenEnumMeta
|
|
128
|
+
):
|
|
129
|
+
MANUAL = "manual"
|
|
130
|
+
SECRET = "secret"
|
|
131
|
+
CERTIFICATE = "certificate"
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
class InputEventhubMicrosoftEntraIDAuthenticationEndpoint(
|
|
135
|
+
str, Enum, metaclass=utils.OpenEnumMeta
|
|
136
|
+
):
|
|
137
|
+
r"""Endpoint used to acquire authentication tokens from Azure"""
|
|
138
|
+
|
|
139
|
+
HTTPS_LOGIN_MICROSOFTONLINE_COM = "https://login.microsoftonline.com"
|
|
140
|
+
HTTPS_LOGIN_MICROSOFTONLINE_US = "https://login.microsoftonline.us"
|
|
141
|
+
HTTPS_LOGIN_PARTNER_MICROSOFTONLINE_CN = "https://login.partner.microsoftonline.cn"
|
|
142
|
+
|
|
143
|
+
|
|
117
144
|
class InputEventhubAuthenticationTypedDict(TypedDict):
|
|
118
145
|
r"""Authentication parameters to use when connecting to brokers. Using TLS is highly recommended."""
|
|
119
146
|
|
|
120
147
|
disabled: NotRequired[bool]
|
|
148
|
+
auth_type: NotRequired[InputEventhubAuthTypeAuthenticationMethod]
|
|
149
|
+
r"""Enter password directly, or select a stored secret"""
|
|
150
|
+
password: NotRequired[str]
|
|
151
|
+
r"""Connection-string primary key, or connection-string secondary key, from the Event Hubs workspace"""
|
|
152
|
+
text_secret: NotRequired[str]
|
|
153
|
+
r"""Select or create a stored text secret"""
|
|
121
154
|
mechanism: NotRequired[InputEventhubSASLMechanism]
|
|
155
|
+
username: NotRequired[str]
|
|
156
|
+
r"""The username for authentication. For Event Hubs, this should always be $ConnectionString."""
|
|
157
|
+
client_secret_auth_type: NotRequired[
|
|
158
|
+
InputEventhubClientSecretAuthTypeAuthenticationMethod
|
|
159
|
+
]
|
|
160
|
+
client_secret: NotRequired[str]
|
|
161
|
+
r"""client_secret to pass in the OAuth request parameter"""
|
|
162
|
+
client_text_secret: NotRequired[str]
|
|
163
|
+
r"""Select or create a stored text secret"""
|
|
164
|
+
certificate_name: NotRequired[str]
|
|
165
|
+
r"""Select or create a stored certificate"""
|
|
166
|
+
cert_path: NotRequired[str]
|
|
167
|
+
priv_key_path: NotRequired[str]
|
|
168
|
+
passphrase: NotRequired[str]
|
|
169
|
+
oauth_endpoint: NotRequired[InputEventhubMicrosoftEntraIDAuthenticationEndpoint]
|
|
170
|
+
r"""Endpoint used to acquire authentication tokens from Azure"""
|
|
171
|
+
client_id: NotRequired[str]
|
|
172
|
+
r"""client_id to pass in the OAuth request parameter"""
|
|
173
|
+
tenant_id: NotRequired[str]
|
|
174
|
+
r"""Directory ID (tenant identifier) in Azure Active Directory"""
|
|
175
|
+
scope: NotRequired[str]
|
|
176
|
+
r"""Scope to pass in the OAuth request parameter"""
|
|
122
177
|
|
|
123
178
|
|
|
124
179
|
class InputEventhubAuthentication(BaseModel):
|
|
@@ -126,10 +181,73 @@ class InputEventhubAuthentication(BaseModel):
|
|
|
126
181
|
|
|
127
182
|
disabled: Optional[bool] = False
|
|
128
183
|
|
|
184
|
+
auth_type: Annotated[
|
|
185
|
+
Annotated[
|
|
186
|
+
Optional[InputEventhubAuthTypeAuthenticationMethod],
|
|
187
|
+
PlainValidator(validate_open_enum(False)),
|
|
188
|
+
],
|
|
189
|
+
pydantic.Field(alias="authType"),
|
|
190
|
+
] = InputEventhubAuthTypeAuthenticationMethod.MANUAL
|
|
191
|
+
r"""Enter password directly, or select a stored secret"""
|
|
192
|
+
|
|
193
|
+
password: Optional[str] = None
|
|
194
|
+
r"""Connection-string primary key, or connection-string secondary key, from the Event Hubs workspace"""
|
|
195
|
+
|
|
196
|
+
text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
|
|
197
|
+
r"""Select or create a stored text secret"""
|
|
198
|
+
|
|
129
199
|
mechanism: Annotated[
|
|
130
200
|
Optional[InputEventhubSASLMechanism], PlainValidator(validate_open_enum(False))
|
|
131
201
|
] = InputEventhubSASLMechanism.PLAIN
|
|
132
202
|
|
|
203
|
+
username: Optional[str] = "$ConnectionString"
|
|
204
|
+
r"""The username for authentication. For Event Hubs, this should always be $ConnectionString."""
|
|
205
|
+
|
|
206
|
+
client_secret_auth_type: Annotated[
|
|
207
|
+
Annotated[
|
|
208
|
+
Optional[InputEventhubClientSecretAuthTypeAuthenticationMethod],
|
|
209
|
+
PlainValidator(validate_open_enum(False)),
|
|
210
|
+
],
|
|
211
|
+
pydantic.Field(alias="clientSecretAuthType"),
|
|
212
|
+
] = InputEventhubClientSecretAuthTypeAuthenticationMethod.MANUAL
|
|
213
|
+
|
|
214
|
+
client_secret: Annotated[Optional[str], pydantic.Field(alias="clientSecret")] = None
|
|
215
|
+
r"""client_secret to pass in the OAuth request parameter"""
|
|
216
|
+
|
|
217
|
+
client_text_secret: Annotated[
|
|
218
|
+
Optional[str], pydantic.Field(alias="clientTextSecret")
|
|
219
|
+
] = None
|
|
220
|
+
r"""Select or create a stored text secret"""
|
|
221
|
+
|
|
222
|
+
certificate_name: Annotated[
|
|
223
|
+
Optional[str], pydantic.Field(alias="certificateName")
|
|
224
|
+
] = None
|
|
225
|
+
r"""Select or create a stored certificate"""
|
|
226
|
+
|
|
227
|
+
cert_path: Annotated[Optional[str], pydantic.Field(alias="certPath")] = None
|
|
228
|
+
|
|
229
|
+
priv_key_path: Annotated[Optional[str], pydantic.Field(alias="privKeyPath")] = None
|
|
230
|
+
|
|
231
|
+
passphrase: Optional[str] = None
|
|
232
|
+
|
|
233
|
+
oauth_endpoint: Annotated[
|
|
234
|
+
Annotated[
|
|
235
|
+
Optional[InputEventhubMicrosoftEntraIDAuthenticationEndpoint],
|
|
236
|
+
PlainValidator(validate_open_enum(False)),
|
|
237
|
+
],
|
|
238
|
+
pydantic.Field(alias="oauthEndpoint"),
|
|
239
|
+
] = InputEventhubMicrosoftEntraIDAuthenticationEndpoint.HTTPS_LOGIN_MICROSOFTONLINE_COM
|
|
240
|
+
r"""Endpoint used to acquire authentication tokens from Azure"""
|
|
241
|
+
|
|
242
|
+
client_id: Annotated[Optional[str], pydantic.Field(alias="clientId")] = None
|
|
243
|
+
r"""client_id to pass in the OAuth request parameter"""
|
|
244
|
+
|
|
245
|
+
tenant_id: Annotated[Optional[str], pydantic.Field(alias="tenantId")] = None
|
|
246
|
+
r"""Directory ID (tenant identifier) in Azure Active Directory"""
|
|
247
|
+
|
|
248
|
+
scope: Optional[str] = None
|
|
249
|
+
r"""Scope to pass in the OAuth request parameter"""
|
|
250
|
+
|
|
133
251
|
|
|
134
252
|
class InputEventhubTLSSettingsClientSideTypedDict(TypedDict):
|
|
135
253
|
disabled: NotRequired[bool]
|
|
@@ -110,10 +110,10 @@ class InputFilePq(BaseModel):
|
|
|
110
110
|
class InputFileMode(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
111
111
|
r"""Choose how to discover files to monitor"""
|
|
112
112
|
|
|
113
|
-
# Auto
|
|
114
|
-
AUTO = "auto"
|
|
115
113
|
# Manual
|
|
116
114
|
MANUAL = "manual"
|
|
115
|
+
# Auto
|
|
116
|
+
AUTO = "auto"
|
|
117
117
|
|
|
118
118
|
|
|
119
119
|
class InputFileMetadatumTypedDict(TypedDict):
|
|
@@ -157,8 +157,10 @@ class InputFileTypedDict(TypedDict):
|
|
|
157
157
|
r"""Read only new entries at the end of all files discovered at next startup. @{product} will then read newly discovered files from the head. Disable this to resume reading all files from head."""
|
|
158
158
|
idle_timeout: NotRequired[float]
|
|
159
159
|
r"""Time, in seconds, before an idle file is closed"""
|
|
160
|
+
min_age_dur: NotRequired[str]
|
|
161
|
+
r"""The minimum age of files to monitor. Format examples: 30s, 15m, 1h. Age is relative to file modification time. Leave empty to apply no age filters."""
|
|
160
162
|
max_age_dur: NotRequired[str]
|
|
161
|
-
r"""The maximum age of
|
|
163
|
+
r"""The maximum age of event timestamps to collect. Format examples: 60s, 4h, 3d, 1w. Can be used in conjuction with \"Check file modification times\". Leave empty to apply no age filters."""
|
|
162
164
|
check_file_mod_time: NotRequired[bool]
|
|
163
165
|
r"""Skip files with modification times earlier than the maximum age duration"""
|
|
164
166
|
force_text: NotRequired[bool]
|
|
@@ -215,7 +217,7 @@ class InputFile(BaseModel):
|
|
|
215
217
|
|
|
216
218
|
mode: Annotated[
|
|
217
219
|
Optional[InputFileMode], PlainValidator(validate_open_enum(False))
|
|
218
|
-
] = InputFileMode.
|
|
220
|
+
] = InputFileMode.MANUAL
|
|
219
221
|
r"""Choose how to discover files to monitor"""
|
|
220
222
|
|
|
221
223
|
interval: Optional[float] = 10
|
|
@@ -230,8 +232,11 @@ class InputFile(BaseModel):
|
|
|
230
232
|
idle_timeout: Annotated[Optional[float], pydantic.Field(alias="idleTimeout")] = 300
|
|
231
233
|
r"""Time, in seconds, before an idle file is closed"""
|
|
232
234
|
|
|
235
|
+
min_age_dur: Annotated[Optional[str], pydantic.Field(alias="minAgeDur")] = None
|
|
236
|
+
r"""The minimum age of files to monitor. Format examples: 30s, 15m, 1h. Age is relative to file modification time. Leave empty to apply no age filters."""
|
|
237
|
+
|
|
233
238
|
max_age_dur: Annotated[Optional[str], pydantic.Field(alias="maxAgeDur")] = None
|
|
234
|
-
r"""The maximum age of
|
|
239
|
+
r"""The maximum age of event timestamps to collect. Format examples: 60s, 4h, 3d, 1w. Can be used in conjuction with \"Check file modification times\". Leave empty to apply no age filters."""
|
|
235
240
|
|
|
236
241
|
check_file_mod_time: Annotated[
|
|
237
242
|
Optional[bool], pydantic.Field(alias="checkFileModTime")
|
|
@@ -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 InputFirehoseMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
123
123
|
|
|
124
124
|
class InputFirehoseTLSSettingsServerSideTypedDict(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 InputFirehoseTLSSettingsServerSideTypedDict(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[InputFirehoseMinimumTLSVersion]
|
|
141
143
|
max_version: NotRequired[InputFirehoseMaximumTLSVersion]
|
|
142
144
|
|
|
@@ -144,6 +146,19 @@ class InputFirehoseTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
144
146
|
class InputFirehoseTLSSettingsServerSide(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 InputFirehoseTLSSettingsServerSide(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[InputFirehoseMinimumTLSVersion],
|
|
@@ -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, Union
|
|
11
11
|
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
|
|
12
12
|
|
|
13
13
|
|
|
@@ -123,6 +123,12 @@ class InputGrafanaMaximumTLSVersion2(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
123
123
|
|
|
124
124
|
class InputGrafanaTLSSettingsServerSide2TypedDict(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 InputGrafanaTLSSettingsServerSide2TypedDict(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[InputGrafanaMinimumTLSVersion2]
|
|
141
143
|
max_version: NotRequired[InputGrafanaMaximumTLSVersion2]
|
|
142
144
|
|
|
@@ -144,6 +146,19 @@ class InputGrafanaTLSSettingsServerSide2TypedDict(TypedDict):
|
|
|
144
146
|
class InputGrafanaTLSSettingsServerSide2(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 InputGrafanaTLSSettingsServerSide2(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[InputGrafanaMinimumTLSVersion2],
|
|
@@ -753,6 +757,12 @@ class InputGrafanaMaximumTLSVersion1(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
753
757
|
|
|
754
758
|
class InputGrafanaTLSSettingsServerSide1TypedDict(TypedDict):
|
|
755
759
|
disabled: NotRequired[bool]
|
|
760
|
+
request_cert: NotRequired[bool]
|
|
761
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
762
|
+
reject_unauthorized: NotRequired[bool]
|
|
763
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
764
|
+
common_name_regex: NotRequired[str]
|
|
765
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
756
766
|
certificate_name: NotRequired[str]
|
|
757
767
|
r"""The name of the predefined certificate"""
|
|
758
768
|
priv_key_path: NotRequired[str]
|
|
@@ -763,10 +773,6 @@ class InputGrafanaTLSSettingsServerSide1TypedDict(TypedDict):
|
|
|
763
773
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
764
774
|
ca_path: NotRequired[str]
|
|
765
775
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
766
|
-
request_cert: NotRequired[bool]
|
|
767
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
768
|
-
reject_unauthorized: NotRequired[Any]
|
|
769
|
-
common_name_regex: NotRequired[Any]
|
|
770
776
|
min_version: NotRequired[InputGrafanaMinimumTLSVersion1]
|
|
771
777
|
max_version: NotRequired[InputGrafanaMaximumTLSVersion1]
|
|
772
778
|
|
|
@@ -774,6 +780,19 @@ class InputGrafanaTLSSettingsServerSide1TypedDict(TypedDict):
|
|
|
774
780
|
class InputGrafanaTLSSettingsServerSide1(BaseModel):
|
|
775
781
|
disabled: Optional[bool] = True
|
|
776
782
|
|
|
783
|
+
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
784
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
785
|
+
|
|
786
|
+
reject_unauthorized: Annotated[
|
|
787
|
+
Optional[bool], pydantic.Field(alias="rejectUnauthorized")
|
|
788
|
+
] = True
|
|
789
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
790
|
+
|
|
791
|
+
common_name_regex: Annotated[
|
|
792
|
+
Optional[str], pydantic.Field(alias="commonNameRegex")
|
|
793
|
+
] = "/.*/"
|
|
794
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
795
|
+
|
|
777
796
|
certificate_name: Annotated[
|
|
778
797
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
779
798
|
] = None
|
|
@@ -791,17 +810,6 @@ class InputGrafanaTLSSettingsServerSide1(BaseModel):
|
|
|
791
810
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
792
811
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
793
812
|
|
|
794
|
-
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
795
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
796
|
-
|
|
797
|
-
reject_unauthorized: Annotated[
|
|
798
|
-
Optional[Any], pydantic.Field(alias="rejectUnauthorized")
|
|
799
|
-
] = None
|
|
800
|
-
|
|
801
|
-
common_name_regex: Annotated[
|
|
802
|
-
Optional[Any], pydantic.Field(alias="commonNameRegex")
|
|
803
|
-
] = None
|
|
804
|
-
|
|
805
813
|
min_version: Annotated[
|
|
806
814
|
Annotated[
|
|
807
815
|
Optional[InputGrafanaMinimumTLSVersion1],
|