cribl-control-plane 0.3.0b2__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.
- cribl_control_plane/_version.py +3 -3
- cribl_control_plane/errors/__init__.py +8 -5
- cribl_control_plane/errors/{healthstatus_error.py → healthserverstatus_error.py} +10 -9
- cribl_control_plane/groups_sdk.py +48 -24
- cribl_control_plane/health.py +22 -16
- cribl_control_plane/models/__init__.py +152 -29
- cribl_control_plane/models/authtoken.py +4 -7
- cribl_control_plane/models/configgroup.py +8 -7
- cribl_control_plane/models/createconfiggroupbyproductop.py +6 -5
- cribl_control_plane/models/createroutesappendbyidop.py +2 -2
- cribl_control_plane/models/deleteoutputpqbyidop.py +2 -2
- cribl_control_plane/models/groupcreaterequest.py +152 -0
- cribl_control_plane/models/{healthstatus.py → healthserverstatus.py} +7 -7
- 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 +7 -2
- 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/logininfo.py +3 -3
- 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 +167 -22
- cribl_control_plane/models/outputcriblhttp.py +49 -21
- cribl_control_plane/models/outputcribltcp.py +49 -21
- cribl_control_plane/models/outputcrowdstrikenextgensiem.py +50 -22
- cribl_control_plane/models/outputdatabricks.py +7 -0
- cribl_control_plane/models/outputdatadog.py +49 -21
- cribl_control_plane/models/outputdataset.py +49 -21
- cribl_control_plane/models/outputdls3.py +7 -0
- cribl_control_plane/models/outputdynatracehttp.py +49 -21
- cribl_control_plane/models/outputdynatraceotlp.py +49 -21
- cribl_control_plane/models/outputelastic.py +74 -21
- cribl_control_plane/models/outputelasticcloud.py +74 -21
- cribl_control_plane/models/outputfilesystem.py +7 -0
- cribl_control_plane/models/outputgooglechronicle.py +65 -22
- cribl_control_plane/models/outputgooglecloudlogging.py +50 -22
- cribl_control_plane/models/outputgooglecloudstorage.py +7 -0
- cribl_control_plane/models/outputgooglepubsub.py +49 -21
- cribl_control_plane/models/outputgrafanacloud.py +98 -42
- cribl_control_plane/models/outputgraphite.py +49 -21
- cribl_control_plane/models/outputhoneycomb.py +49 -21
- cribl_control_plane/models/outputhumiohec.py +49 -21
- cribl_control_plane/models/outputinfluxdb.py +49 -21
- cribl_control_plane/models/outputkafka.py +162 -19
- cribl_control_plane/models/outputkinesis.py +56 -21
- cribl_control_plane/models/outputloki.py +47 -19
- cribl_control_plane/models/outputminio.py +7 -0
- cribl_control_plane/models/outputmsk.py +54 -19
- cribl_control_plane/models/outputnewrelic.py +49 -21
- cribl_control_plane/models/outputnewrelicevents.py +50 -22
- cribl_control_plane/models/outputopentelemetry.py +49 -21
- cribl_control_plane/models/outputprometheus.py +49 -21
- cribl_control_plane/models/outputs3.py +7 -0
- cribl_control_plane/models/outputsentinel.py +49 -21
- cribl_control_plane/models/outputsentineloneaisiem.py +50 -22
- cribl_control_plane/models/outputservicenow.py +49 -21
- cribl_control_plane/models/outputsignalfx.py +49 -21
- cribl_control_plane/models/outputsns.py +47 -19
- cribl_control_plane/models/outputsplunk.py +49 -21
- cribl_control_plane/models/outputsplunkhec.py +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/routes_sdk.py +6 -6
- cribl_control_plane/tokens.py +23 -15
- {cribl_control_plane-0.3.0b2.dist-info → cribl_control_plane-0.3.0b4.dist-info}/METADATA +4 -4
- {cribl_control_plane-0.3.0b2.dist-info → cribl_control_plane-0.3.0b4.dist-info}/RECORD +111 -112
- cribl_control_plane/models/error.py +0 -16
- cribl_control_plane/models/gethealthinfoop.py +0 -17
- {cribl_control_plane-0.3.0b2.dist-info → cribl_control_plane-0.3.0b4.dist-info}/WHEEL +0 -0
|
@@ -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]
|
|
@@ -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]
|
|
@@ -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],
|
|
@@ -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 InputHTTPMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
123
123
|
|
|
124
124
|
class InputHTTPTLSSettingsServerSideTypedDict(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 InputHTTPTLSSettingsServerSideTypedDict(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[InputHTTPMinimumTLSVersion]
|
|
141
143
|
max_version: NotRequired[InputHTTPMaximumTLSVersion]
|
|
142
144
|
|
|
@@ -144,6 +146,19 @@ class InputHTTPTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
144
146
|
class InputHTTPTLSSettingsServerSide(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 InputHTTPTLSSettingsServerSide(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[InputHTTPMinimumTLSVersion],
|
|
@@ -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 InputHTTPRawMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
123
123
|
|
|
124
124
|
class InputHTTPRawTLSSettingsServerSideTypedDict(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 InputHTTPRawTLSSettingsServerSideTypedDict(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[InputHTTPRawMinimumTLSVersion]
|
|
141
143
|
max_version: NotRequired[InputHTTPRawMaximumTLSVersion]
|
|
142
144
|
|
|
@@ -144,6 +146,19 @@ class InputHTTPRawTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
144
146
|
class InputHTTPRawTLSSettingsServerSide(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 InputHTTPRawTLSSettingsServerSide(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[InputHTTPRawMinimumTLSVersion],
|
|
@@ -255,6 +255,13 @@ class InputKafkaKafkaSchemaRegistryAuthentication(BaseModel):
|
|
|
255
255
|
tls: Optional[InputKafkaKafkaSchemaRegistryTLSSettingsClientSide] = None
|
|
256
256
|
|
|
257
257
|
|
|
258
|
+
class InputKafkaAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
259
|
+
r"""Enter credentials directly, or select a stored secret"""
|
|
260
|
+
|
|
261
|
+
MANUAL = "manual"
|
|
262
|
+
SECRET = "secret"
|
|
263
|
+
|
|
264
|
+
|
|
258
265
|
class InputKafkaSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
259
266
|
# PLAIN
|
|
260
267
|
PLAIN = "plain"
|
|
@@ -266,13 +273,58 @@ class InputKafkaSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
266
273
|
KERBEROS = "kerberos"
|
|
267
274
|
|
|
268
275
|
|
|
276
|
+
class InputKafkaOauthParamTypedDict(TypedDict):
|
|
277
|
+
name: str
|
|
278
|
+
value: str
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
class InputKafkaOauthParam(BaseModel):
|
|
282
|
+
name: str
|
|
283
|
+
|
|
284
|
+
value: str
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
class InputKafkaSaslExtensionTypedDict(TypedDict):
|
|
288
|
+
name: str
|
|
289
|
+
value: str
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
class InputKafkaSaslExtension(BaseModel):
|
|
293
|
+
name: str
|
|
294
|
+
|
|
295
|
+
value: str
|
|
296
|
+
|
|
297
|
+
|
|
269
298
|
class InputKafkaAuthenticationTypedDict(TypedDict):
|
|
270
299
|
r"""Authentication parameters to use when connecting to brokers. Using TLS is highly recommended."""
|
|
271
300
|
|
|
272
301
|
disabled: NotRequired[bool]
|
|
302
|
+
username: NotRequired[str]
|
|
303
|
+
password: NotRequired[str]
|
|
304
|
+
auth_type: NotRequired[InputKafkaAuthenticationMethod]
|
|
305
|
+
r"""Enter credentials directly, or select a stored secret"""
|
|
306
|
+
credentials_secret: NotRequired[str]
|
|
307
|
+
r"""Select or create a secret that references your credentials"""
|
|
273
308
|
mechanism: NotRequired[InputKafkaSASLMechanism]
|
|
309
|
+
keytab_location: NotRequired[str]
|
|
310
|
+
r"""Location of keytab file for authentication principal"""
|
|
311
|
+
principal: NotRequired[str]
|
|
312
|
+
r"""Authentication principal, such as `kafka_user@example.com`"""
|
|
313
|
+
broker_service_class: NotRequired[str]
|
|
314
|
+
r"""Kerberos service class for Kafka brokers, such as `kafka`"""
|
|
274
315
|
oauth_enabled: NotRequired[bool]
|
|
275
316
|
r"""Enable OAuth authentication"""
|
|
317
|
+
token_url: NotRequired[str]
|
|
318
|
+
r"""URL of the token endpoint to use for OAuth authentication"""
|
|
319
|
+
client_id: NotRequired[str]
|
|
320
|
+
r"""Client ID to use for OAuth authentication"""
|
|
321
|
+
oauth_secret_type: NotRequired[str]
|
|
322
|
+
client_text_secret: NotRequired[str]
|
|
323
|
+
r"""Select or create a stored text secret"""
|
|
324
|
+
oauth_params: NotRequired[List[InputKafkaOauthParamTypedDict]]
|
|
325
|
+
r"""Additional fields to send to the token endpoint, such as scope or audience"""
|
|
326
|
+
sasl_extensions: NotRequired[List[InputKafkaSaslExtensionTypedDict]]
|
|
327
|
+
r"""Additional SASL extension fields, such as Confluent's logicalCluster or identityPoolId"""
|
|
276
328
|
|
|
277
329
|
|
|
278
330
|
class InputKafkaAuthentication(BaseModel):
|
|
@@ -280,15 +332,71 @@ class InputKafkaAuthentication(BaseModel):
|
|
|
280
332
|
|
|
281
333
|
disabled: Optional[bool] = True
|
|
282
334
|
|
|
335
|
+
username: Optional[str] = None
|
|
336
|
+
|
|
337
|
+
password: Optional[str] = None
|
|
338
|
+
|
|
339
|
+
auth_type: Annotated[
|
|
340
|
+
Annotated[
|
|
341
|
+
Optional[InputKafkaAuthenticationMethod],
|
|
342
|
+
PlainValidator(validate_open_enum(False)),
|
|
343
|
+
],
|
|
344
|
+
pydantic.Field(alias="authType"),
|
|
345
|
+
] = InputKafkaAuthenticationMethod.MANUAL
|
|
346
|
+
r"""Enter credentials directly, or select a stored secret"""
|
|
347
|
+
|
|
348
|
+
credentials_secret: Annotated[
|
|
349
|
+
Optional[str], pydantic.Field(alias="credentialsSecret")
|
|
350
|
+
] = None
|
|
351
|
+
r"""Select or create a secret that references your credentials"""
|
|
352
|
+
|
|
283
353
|
mechanism: Annotated[
|
|
284
354
|
Optional[InputKafkaSASLMechanism], PlainValidator(validate_open_enum(False))
|
|
285
355
|
] = InputKafkaSASLMechanism.PLAIN
|
|
286
356
|
|
|
357
|
+
keytab_location: Annotated[
|
|
358
|
+
Optional[str], pydantic.Field(alias="keytabLocation")
|
|
359
|
+
] = None
|
|
360
|
+
r"""Location of keytab file for authentication principal"""
|
|
361
|
+
|
|
362
|
+
principal: Optional[str] = None
|
|
363
|
+
r"""Authentication principal, such as `kafka_user@example.com`"""
|
|
364
|
+
|
|
365
|
+
broker_service_class: Annotated[
|
|
366
|
+
Optional[str], pydantic.Field(alias="brokerServiceClass")
|
|
367
|
+
] = None
|
|
368
|
+
r"""Kerberos service class for Kafka brokers, such as `kafka`"""
|
|
369
|
+
|
|
287
370
|
oauth_enabled: Annotated[Optional[bool], pydantic.Field(alias="oauthEnabled")] = (
|
|
288
371
|
False
|
|
289
372
|
)
|
|
290
373
|
r"""Enable OAuth authentication"""
|
|
291
374
|
|
|
375
|
+
token_url: Annotated[Optional[str], pydantic.Field(alias="tokenUrl")] = None
|
|
376
|
+
r"""URL of the token endpoint to use for OAuth authentication"""
|
|
377
|
+
|
|
378
|
+
client_id: Annotated[Optional[str], pydantic.Field(alias="clientId")] = None
|
|
379
|
+
r"""Client ID to use for OAuth authentication"""
|
|
380
|
+
|
|
381
|
+
oauth_secret_type: Annotated[
|
|
382
|
+
Optional[str], pydantic.Field(alias="oauthSecretType")
|
|
383
|
+
] = "secret"
|
|
384
|
+
|
|
385
|
+
client_text_secret: Annotated[
|
|
386
|
+
Optional[str], pydantic.Field(alias="clientTextSecret")
|
|
387
|
+
] = None
|
|
388
|
+
r"""Select or create a stored text secret"""
|
|
389
|
+
|
|
390
|
+
oauth_params: Annotated[
|
|
391
|
+
Optional[List[InputKafkaOauthParam]], pydantic.Field(alias="oauthParams")
|
|
392
|
+
] = None
|
|
393
|
+
r"""Additional fields to send to the token endpoint, such as scope or audience"""
|
|
394
|
+
|
|
395
|
+
sasl_extensions: Annotated[
|
|
396
|
+
Optional[List[InputKafkaSaslExtension]], pydantic.Field(alias="saslExtensions")
|
|
397
|
+
] = None
|
|
398
|
+
r"""Additional SASL extension fields, such as Confluent's logicalCluster or identityPoolId"""
|
|
399
|
+
|
|
292
400
|
|
|
293
401
|
class InputKafkaMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
294
402
|
TL_SV1 = "TLSv1"
|