cribl-control-plane 0.3.0b3__py3-none-any.whl → 0.3.0b4__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.

Files changed (97) hide show
  1. cribl_control_plane/_version.py +3 -3
  2. cribl_control_plane/models/__init__.py +111 -3
  3. cribl_control_plane/models/input.py +15 -15
  4. cribl_control_plane/models/inputappscope.py +20 -16
  5. cribl_control_plane/models/inputconfluentcloud.py +110 -0
  6. cribl_control_plane/models/inputcriblhttp.py +20 -16
  7. cribl_control_plane/models/inputcribllakehttp.py +20 -16
  8. cribl_control_plane/models/inputcribltcp.py +20 -16
  9. cribl_control_plane/models/inputdatadogagent.py +20 -16
  10. cribl_control_plane/models/inputedgeprometheus.py +44 -36
  11. cribl_control_plane/models/inputelastic.py +44 -27
  12. cribl_control_plane/models/inputeventhub.py +118 -0
  13. cribl_control_plane/models/inputfile.py +7 -2
  14. cribl_control_plane/models/inputfirehose.py +20 -16
  15. cribl_control_plane/models/inputgrafana.py +39 -31
  16. cribl_control_plane/models/inputhttp.py +20 -16
  17. cribl_control_plane/models/inputhttpraw.py +20 -16
  18. cribl_control_plane/models/inputkafka.py +108 -0
  19. cribl_control_plane/models/inputloki.py +20 -16
  20. cribl_control_plane/models/inputmetrics.py +20 -16
  21. cribl_control_plane/models/inputmodeldriventelemetry.py +20 -16
  22. cribl_control_plane/models/inputopentelemetry.py +19 -15
  23. cribl_control_plane/models/inputprometheus.py +44 -36
  24. cribl_control_plane/models/inputprometheusrw.py +20 -16
  25. cribl_control_plane/models/inputsplunk.py +20 -16
  26. cribl_control_plane/models/inputsplunkhec.py +19 -15
  27. cribl_control_plane/models/inputsyslog.py +39 -31
  28. cribl_control_plane/models/inputsystemmetrics.py +20 -10
  29. cribl_control_plane/models/inputtcp.py +30 -16
  30. cribl_control_plane/models/inputtcpjson.py +20 -16
  31. cribl_control_plane/models/inputwindowsmetrics.py +20 -10
  32. cribl_control_plane/models/inputwineventlogs.py +14 -0
  33. cribl_control_plane/models/inputwizwebhook.py +20 -16
  34. cribl_control_plane/models/inputzscalerhec.py +19 -15
  35. cribl_control_plane/models/output.py +21 -21
  36. cribl_control_plane/models/outputazureblob.py +7 -0
  37. cribl_control_plane/models/outputazuredataexplorer.py +283 -93
  38. cribl_control_plane/models/outputazureeventhub.py +169 -21
  39. cribl_control_plane/models/outputazurelogs.py +49 -21
  40. cribl_control_plane/models/outputchronicle.py +49 -21
  41. cribl_control_plane/models/outputclickhouse.py +49 -21
  42. cribl_control_plane/models/outputcloudwatch.py +49 -21
  43. cribl_control_plane/models/outputconfluentcloud.py +167 -22
  44. cribl_control_plane/models/outputcriblhttp.py +49 -21
  45. cribl_control_plane/models/outputcribltcp.py +49 -21
  46. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +50 -22
  47. cribl_control_plane/models/outputdatabricks.py +7 -0
  48. cribl_control_plane/models/outputdatadog.py +49 -21
  49. cribl_control_plane/models/outputdataset.py +49 -21
  50. cribl_control_plane/models/outputdls3.py +7 -0
  51. cribl_control_plane/models/outputdynatracehttp.py +49 -21
  52. cribl_control_plane/models/outputdynatraceotlp.py +49 -21
  53. cribl_control_plane/models/outputelastic.py +74 -21
  54. cribl_control_plane/models/outputelasticcloud.py +74 -21
  55. cribl_control_plane/models/outputfilesystem.py +7 -0
  56. cribl_control_plane/models/outputgooglechronicle.py +65 -22
  57. cribl_control_plane/models/outputgooglecloudlogging.py +50 -22
  58. cribl_control_plane/models/outputgooglecloudstorage.py +7 -0
  59. cribl_control_plane/models/outputgooglepubsub.py +49 -21
  60. cribl_control_plane/models/outputgrafanacloud.py +98 -42
  61. cribl_control_plane/models/outputgraphite.py +49 -21
  62. cribl_control_plane/models/outputhoneycomb.py +49 -21
  63. cribl_control_plane/models/outputhumiohec.py +49 -21
  64. cribl_control_plane/models/outputinfluxdb.py +49 -21
  65. cribl_control_plane/models/outputkafka.py +162 -19
  66. cribl_control_plane/models/outputkinesis.py +56 -21
  67. cribl_control_plane/models/outputloki.py +47 -19
  68. cribl_control_plane/models/outputminio.py +7 -0
  69. cribl_control_plane/models/outputmsk.py +54 -19
  70. cribl_control_plane/models/outputnewrelic.py +49 -21
  71. cribl_control_plane/models/outputnewrelicevents.py +50 -22
  72. cribl_control_plane/models/outputopentelemetry.py +49 -21
  73. cribl_control_plane/models/outputprometheus.py +49 -21
  74. cribl_control_plane/models/outputs3.py +7 -0
  75. cribl_control_plane/models/outputsentinel.py +49 -21
  76. cribl_control_plane/models/outputsentineloneaisiem.py +50 -22
  77. cribl_control_plane/models/outputservicenow.py +49 -21
  78. cribl_control_plane/models/outputsignalfx.py +49 -21
  79. cribl_control_plane/models/outputsns.py +47 -19
  80. cribl_control_plane/models/outputsplunk.py +49 -21
  81. cribl_control_plane/models/outputsplunkhec.py +124 -21
  82. cribl_control_plane/models/outputsplunklb.py +49 -21
  83. cribl_control_plane/models/outputsqs.py +47 -19
  84. cribl_control_plane/models/outputstatsd.py +49 -21
  85. cribl_control_plane/models/outputstatsdext.py +49 -21
  86. cribl_control_plane/models/outputsumologic.py +49 -21
  87. cribl_control_plane/models/outputsyslog.py +129 -99
  88. cribl_control_plane/models/outputtcpjson.py +49 -21
  89. cribl_control_plane/models/outputwavefront.py +49 -21
  90. cribl_control_plane/models/outputwebhook.py +49 -21
  91. cribl_control_plane/models/outputxsiam.py +47 -19
  92. cribl_control_plane/models/runnablejobcollection.py +12 -8
  93. cribl_control_plane/models/runnablejobexecutor.py +12 -8
  94. cribl_control_plane/models/runnablejobscheduledsearch.py +12 -8
  95. {cribl_control_plane-0.3.0b3.dist-info → cribl_control_plane-0.3.0b4.dist-info}/METADATA +1 -1
  96. {cribl_control_plane-0.3.0b3.dist-info → cribl_control_plane-0.3.0b4.dist-info}/RECORD +97 -97
  97. {cribl_control_plane-0.3.0b3.dist-info → cribl_control_plane-0.3.0b4.dist-info}/WHEEL +0 -0
@@ -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 Any, List, Optional
10
+ from typing import List, Optional
11
11
  from typing_extensions import Annotated, NotRequired, TypedDict
12
12
 
13
13
 
@@ -221,6 +221,12 @@ class InputAppscopeMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
221
221
 
222
222
  class InputAppscopeTLSSettingsServerSideTypedDict(TypedDict):
223
223
  disabled: NotRequired[bool]
224
+ request_cert: NotRequired[bool]
225
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
226
+ reject_unauthorized: NotRequired[bool]
227
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
228
+ common_name_regex: NotRequired[str]
229
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
224
230
  certificate_name: NotRequired[str]
225
231
  r"""The name of the predefined certificate"""
226
232
  priv_key_path: NotRequired[str]
@@ -231,10 +237,6 @@ class InputAppscopeTLSSettingsServerSideTypedDict(TypedDict):
231
237
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
232
238
  ca_path: NotRequired[str]
233
239
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
234
- request_cert: NotRequired[bool]
235
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
236
- reject_unauthorized: NotRequired[Any]
237
- common_name_regex: NotRequired[Any]
238
240
  min_version: NotRequired[InputAppscopeMinimumTLSVersion]
239
241
  max_version: NotRequired[InputAppscopeMaximumTLSVersion]
240
242
 
@@ -242,6 +244,19 @@ class InputAppscopeTLSSettingsServerSideTypedDict(TypedDict):
242
244
  class InputAppscopeTLSSettingsServerSide(BaseModel):
243
245
  disabled: Optional[bool] = True
244
246
 
247
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
248
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
249
+
250
+ reject_unauthorized: Annotated[
251
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
252
+ ] = True
253
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
254
+
255
+ common_name_regex: Annotated[
256
+ Optional[str], pydantic.Field(alias="commonNameRegex")
257
+ ] = "/.*/"
258
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
259
+
245
260
  certificate_name: Annotated[
246
261
  Optional[str], pydantic.Field(alias="certificateName")
247
262
  ] = None
@@ -259,17 +274,6 @@ class InputAppscopeTLSSettingsServerSide(BaseModel):
259
274
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
260
275
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
261
276
 
262
- request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
263
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
264
-
265
- reject_unauthorized: Annotated[
266
- Optional[Any], pydantic.Field(alias="rejectUnauthorized")
267
- ] = None
268
-
269
- common_name_regex: Annotated[
270
- Optional[Any], pydantic.Field(alias="commonNameRegex")
271
- ] = None
272
-
273
277
  min_version: Annotated[
274
278
  Annotated[
275
279
  Optional[InputAppscopeMinimumTLSVersion],
@@ -341,6 +341,13 @@ class InputConfluentCloudKafkaSchemaRegistryAuthentication(BaseModel):
341
341
  tls: Optional[InputConfluentCloudKafkaSchemaRegistryTLSSettingsClientSide] = None
342
342
 
343
343
 
344
+ class InputConfluentCloudAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
345
+ r"""Enter credentials directly, or select a stored secret"""
346
+
347
+ MANUAL = "manual"
348
+ SECRET = "secret"
349
+
350
+
344
351
  class InputConfluentCloudSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
345
352
  # PLAIN
346
353
  PLAIN = "plain"
@@ -352,13 +359,58 @@ class InputConfluentCloudSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
352
359
  KERBEROS = "kerberos"
353
360
 
354
361
 
362
+ class InputConfluentCloudOauthParamTypedDict(TypedDict):
363
+ name: str
364
+ value: str
365
+
366
+
367
+ class InputConfluentCloudOauthParam(BaseModel):
368
+ name: str
369
+
370
+ value: str
371
+
372
+
373
+ class InputConfluentCloudSaslExtensionTypedDict(TypedDict):
374
+ name: str
375
+ value: str
376
+
377
+
378
+ class InputConfluentCloudSaslExtension(BaseModel):
379
+ name: str
380
+
381
+ value: str
382
+
383
+
355
384
  class InputConfluentCloudAuthenticationTypedDict(TypedDict):
356
385
  r"""Authentication parameters to use when connecting to brokers. Using TLS is highly recommended."""
357
386
 
358
387
  disabled: NotRequired[bool]
388
+ username: NotRequired[str]
389
+ password: NotRequired[str]
390
+ auth_type: NotRequired[InputConfluentCloudAuthenticationMethod]
391
+ r"""Enter credentials directly, or select a stored secret"""
392
+ credentials_secret: NotRequired[str]
393
+ r"""Select or create a secret that references your credentials"""
359
394
  mechanism: NotRequired[InputConfluentCloudSASLMechanism]
395
+ keytab_location: NotRequired[str]
396
+ r"""Location of keytab file for authentication principal"""
397
+ principal: NotRequired[str]
398
+ r"""Authentication principal, such as `kafka_user@example.com`"""
399
+ broker_service_class: NotRequired[str]
400
+ r"""Kerberos service class for Kafka brokers, such as `kafka`"""
360
401
  oauth_enabled: NotRequired[bool]
361
402
  r"""Enable OAuth authentication"""
403
+ token_url: NotRequired[str]
404
+ r"""URL of the token endpoint to use for OAuth authentication"""
405
+ client_id: NotRequired[str]
406
+ r"""Client ID to use for OAuth authentication"""
407
+ oauth_secret_type: NotRequired[str]
408
+ client_text_secret: NotRequired[str]
409
+ r"""Select or create a stored text secret"""
410
+ oauth_params: NotRequired[List[InputConfluentCloudOauthParamTypedDict]]
411
+ r"""Additional fields to send to the token endpoint, such as scope or audience"""
412
+ sasl_extensions: NotRequired[List[InputConfluentCloudSaslExtensionTypedDict]]
413
+ r"""Additional SASL extension fields, such as Confluent's logicalCluster or identityPoolId"""
362
414
 
363
415
 
364
416
  class InputConfluentCloudAuthentication(BaseModel):
@@ -366,16 +418,74 @@ class InputConfluentCloudAuthentication(BaseModel):
366
418
 
367
419
  disabled: Optional[bool] = True
368
420
 
421
+ username: Optional[str] = None
422
+
423
+ password: Optional[str] = None
424
+
425
+ auth_type: Annotated[
426
+ Annotated[
427
+ Optional[InputConfluentCloudAuthenticationMethod],
428
+ PlainValidator(validate_open_enum(False)),
429
+ ],
430
+ pydantic.Field(alias="authType"),
431
+ ] = InputConfluentCloudAuthenticationMethod.MANUAL
432
+ r"""Enter credentials directly, or select a stored secret"""
433
+
434
+ credentials_secret: Annotated[
435
+ Optional[str], pydantic.Field(alias="credentialsSecret")
436
+ ] = None
437
+ r"""Select or create a secret that references your credentials"""
438
+
369
439
  mechanism: Annotated[
370
440
  Optional[InputConfluentCloudSASLMechanism],
371
441
  PlainValidator(validate_open_enum(False)),
372
442
  ] = InputConfluentCloudSASLMechanism.PLAIN
373
443
 
444
+ keytab_location: Annotated[
445
+ Optional[str], pydantic.Field(alias="keytabLocation")
446
+ ] = None
447
+ r"""Location of keytab file for authentication principal"""
448
+
449
+ principal: Optional[str] = None
450
+ r"""Authentication principal, such as `kafka_user@example.com`"""
451
+
452
+ broker_service_class: Annotated[
453
+ Optional[str], pydantic.Field(alias="brokerServiceClass")
454
+ ] = None
455
+ r"""Kerberos service class for Kafka brokers, such as `kafka`"""
456
+
374
457
  oauth_enabled: Annotated[Optional[bool], pydantic.Field(alias="oauthEnabled")] = (
375
458
  False
376
459
  )
377
460
  r"""Enable OAuth authentication"""
378
461
 
462
+ token_url: Annotated[Optional[str], pydantic.Field(alias="tokenUrl")] = None
463
+ r"""URL of the token endpoint to use for OAuth authentication"""
464
+
465
+ client_id: Annotated[Optional[str], pydantic.Field(alias="clientId")] = None
466
+ r"""Client ID to use for OAuth authentication"""
467
+
468
+ oauth_secret_type: Annotated[
469
+ Optional[str], pydantic.Field(alias="oauthSecretType")
470
+ ] = "secret"
471
+
472
+ client_text_secret: Annotated[
473
+ Optional[str], pydantic.Field(alias="clientTextSecret")
474
+ ] = None
475
+ r"""Select or create a stored text secret"""
476
+
477
+ oauth_params: Annotated[
478
+ Optional[List[InputConfluentCloudOauthParam]],
479
+ pydantic.Field(alias="oauthParams"),
480
+ ] = None
481
+ r"""Additional fields to send to the token endpoint, such as scope or audience"""
482
+
483
+ sasl_extensions: Annotated[
484
+ Optional[List[InputConfluentCloudSaslExtension]],
485
+ pydantic.Field(alias="saslExtensions"),
486
+ ] = None
487
+ r"""Additional SASL extension fields, such as Confluent's logicalCluster or identityPoolId"""
488
+
379
489
 
380
490
  class InputConfluentCloudMetadatumTypedDict(TypedDict):
381
491
  name: str
@@ -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 Any, List, Optional
10
+ from typing import List, Optional
11
11
  from typing_extensions import Annotated, NotRequired, TypedDict
12
12
 
13
13
 
@@ -123,6 +123,12 @@ class InputCriblHTTPMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
123
123
 
124
124
  class InputCriblHTTPTLSSettingsServerSideTypedDict(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 InputCriblHTTPTLSSettingsServerSideTypedDict(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[InputCriblHTTPMinimumTLSVersion]
141
143
  max_version: NotRequired[InputCriblHTTPMaximumTLSVersion]
142
144
 
@@ -144,6 +146,19 @@ class InputCriblHTTPTLSSettingsServerSideTypedDict(TypedDict):
144
146
  class InputCriblHTTPTLSSettingsServerSide(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 InputCriblHTTPTLSSettingsServerSide(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[InputCriblHTTPMinimumTLSVersion],
@@ -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 Any, List, Optional
10
+ from typing import List, Optional
11
11
  from typing_extensions import Annotated, NotRequired, TypedDict
12
12
 
13
13
 
@@ -124,6 +124,12 @@ class InputCriblLakeHTTPMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMet
124
124
 
125
125
  class InputCriblLakeHTTPTLSSettingsServerSideTypedDict(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 InputCriblLakeHTTPTLSSettingsServerSideTypedDict(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[InputCriblLakeHTTPMinimumTLSVersion]
142
144
  max_version: NotRequired[InputCriblLakeHTTPMaximumTLSVersion]
143
145
 
@@ -145,6 +147,19 @@ class InputCriblLakeHTTPTLSSettingsServerSideTypedDict(TypedDict):
145
147
  class InputCriblLakeHTTPTLSSettingsServerSide(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 InputCriblLakeHTTPTLSSettingsServerSide(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[InputCriblLakeHTTPMinimumTLSVersion],
@@ -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 Any, List, Optional
10
+ from typing import List, Optional
11
11
  from typing_extensions import Annotated, NotRequired, TypedDict
12
12
 
13
13
 
@@ -123,6 +123,12 @@ class InputCriblTCPMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
123
123
 
124
124
  class InputCriblTCPTLSSettingsServerSideTypedDict(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 InputCriblTCPTLSSettingsServerSideTypedDict(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[InputCriblTCPMinimumTLSVersion]
141
143
  max_version: NotRequired[InputCriblTCPMaximumTLSVersion]
142
144
 
@@ -144,6 +146,19 @@ class InputCriblTCPTLSSettingsServerSideTypedDict(TypedDict):
144
146
  class InputCriblTCPTLSSettingsServerSide(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 InputCriblTCPTLSSettingsServerSide(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[InputCriblTCPMinimumTLSVersion],
@@ -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 Any, List, Optional
10
+ from typing import List, Optional
11
11
  from typing_extensions import Annotated, NotRequired, TypedDict
12
12
 
13
13
 
@@ -124,6 +124,12 @@ class InputDatadogAgentMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta
124
124
 
125
125
  class InputDatadogAgentTLSSettingsServerSideTypedDict(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 InputDatadogAgentTLSSettingsServerSideTypedDict(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[InputDatadogAgentMinimumTLSVersion]
142
144
  max_version: NotRequired[InputDatadogAgentMaximumTLSVersion]
143
145
 
@@ -145,6 +147,19 @@ class InputDatadogAgentTLSSettingsServerSideTypedDict(TypedDict):
145
147
  class InputDatadogAgentTLSSettingsServerSide(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 InputDatadogAgentTLSSettingsServerSide(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[InputDatadogAgentMinimumTLSVersion],
@@ -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
  )