cribl-control-plane 0.0.38__py3-none-any.whl → 0.4.0a6__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/_hooks/clientcredentials.py +92 -42
- cribl_control_plane/_version.py +4 -4
- cribl_control_plane/acl.py +5 -3
- cribl_control_plane/auth_sdk.py +6 -3
- cribl_control_plane/basesdk.py +11 -1
- cribl_control_plane/commits.py +7 -5
- cribl_control_plane/destinations.py +6 -4
- cribl_control_plane/destinations_pq.py +2 -2
- cribl_control_plane/errors/__init__.py +23 -8
- cribl_control_plane/errors/apierror.py +2 -0
- cribl_control_plane/errors/criblcontrolplaneerror.py +11 -7
- cribl_control_plane/errors/error.py +4 -2
- cribl_control_plane/errors/healthserverstatus_error.py +41 -0
- cribl_control_plane/errors/no_response_error.py +5 -1
- cribl_control_plane/errors/responsevalidationerror.py +2 -0
- cribl_control_plane/groups_configs.py +8 -3
- cribl_control_plane/groups_sdk.py +64 -38
- cribl_control_plane/health.py +22 -12
- cribl_control_plane/httpclient.py +0 -1
- cribl_control_plane/lakedatasets.py +40 -12
- cribl_control_plane/models/__init__.py +1180 -54
- cribl_control_plane/models/authtoken.py +5 -1
- cribl_control_plane/models/{routecloneconf.py → branchinfo.py} +4 -4
- cribl_control_plane/models/cacheconnection.py +30 -2
- cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
- cribl_control_plane/models/cloudprovider.py +2 -1
- cribl_control_plane/models/configgroup.py +66 -11
- cribl_control_plane/models/configgroupcloud.py +17 -3
- cribl_control_plane/models/createconfiggroupbyproductop.py +27 -9
- cribl_control_plane/models/createinputhectokenbyidop.py +6 -5
- cribl_control_plane/models/createroutesappendbyidop.py +2 -2
- cribl_control_plane/models/createversionpushop.py +5 -5
- cribl_control_plane/models/createversionrevertop.py +2 -2
- cribl_control_plane/models/createversionundoop.py +3 -3
- cribl_control_plane/models/cribllakedataset.py +22 -2
- cribl_control_plane/models/cribllakedatasetupdate.py +95 -0
- cribl_control_plane/models/datasetmetadata.py +18 -2
- cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +18 -2
- cribl_control_plane/models/deleteoutputpqbyidop.py +5 -5
- cribl_control_plane/models/deletepipelinebyidop.py +2 -2
- cribl_control_plane/models/difffiles.py +171 -0
- cribl_control_plane/models/distributedsummary.py +6 -0
- cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +24 -2
- cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +24 -2
- cribl_control_plane/models/getconfiggroupbyproductandidop.py +14 -1
- cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +18 -2
- cribl_control_plane/models/getoutputpqbyidop.py +6 -5
- cribl_control_plane/models/getpipelinebyidop.py +2 -2
- cribl_control_plane/models/getroutesbyidop.py +2 -2
- cribl_control_plane/models/getsummaryop.py +18 -2
- cribl_control_plane/models/getversionbranchop.py +6 -5
- cribl_control_plane/models/getversioncountop.py +6 -5
- cribl_control_plane/models/getversiondiffop.py +6 -5
- cribl_control_plane/models/getversionshowop.py +6 -5
- cribl_control_plane/models/gitcountresult.py +13 -0
- cribl_control_plane/models/gitdiffresult.py +16 -0
- cribl_control_plane/models/gitinfo.py +14 -3
- cribl_control_plane/models/gitshowresult.py +19 -0
- cribl_control_plane/models/groupcreaterequest.py +171 -0
- cribl_control_plane/models/hbcriblinfo.py +39 -3
- cribl_control_plane/models/healthserverstatus.py +55 -0
- cribl_control_plane/models/heartbeatmetadata.py +3 -0
- cribl_control_plane/models/input.py +83 -78
- cribl_control_plane/models/inputappscope.py +126 -30
- cribl_control_plane/models/inputazureblob.py +62 -6
- cribl_control_plane/models/inputcloudflarehec.py +513 -0
- cribl_control_plane/models/inputcollection.py +47 -4
- cribl_control_plane/models/inputconfluentcloud.py +254 -30
- cribl_control_plane/models/inputcribl.py +47 -4
- cribl_control_plane/models/inputcriblhttp.py +121 -30
- cribl_control_plane/models/inputcribllakehttp.py +122 -30
- cribl_control_plane/models/inputcriblmetrics.py +48 -4
- cribl_control_plane/models/inputcribltcp.py +122 -24
- cribl_control_plane/models/inputcrowdstrike.py +92 -10
- cribl_control_plane/models/inputdatadogagent.py +98 -24
- cribl_control_plane/models/inputdatagen.py +47 -4
- cribl_control_plane/models/inputedgeprometheus.py +210 -50
- cribl_control_plane/models/inputelastic.py +167 -36
- cribl_control_plane/models/inputeventhub.py +209 -6
- cribl_control_plane/models/inputexec.py +59 -6
- cribl_control_plane/models/inputfile.py +78 -10
- cribl_control_plane/models/inputfirehose.py +97 -24
- cribl_control_plane/models/inputgooglepubsub.py +67 -6
- cribl_control_plane/models/inputgrafana.py +251 -71
- cribl_control_plane/models/inputhttp.py +97 -24
- cribl_control_plane/models/inputhttpraw.py +97 -24
- cribl_control_plane/models/inputjournalfiles.py +48 -4
- cribl_control_plane/models/inputkafka.py +248 -26
- cribl_control_plane/models/inputkinesis.py +130 -14
- cribl_control_plane/models/inputkubeevents.py +47 -4
- cribl_control_plane/models/inputkubelogs.py +61 -8
- cribl_control_plane/models/inputkubemetrics.py +61 -8
- cribl_control_plane/models/inputloki.py +113 -34
- cribl_control_plane/models/inputmetrics.py +97 -24
- cribl_control_plane/models/inputmodeldriventelemetry.py +107 -26
- cribl_control_plane/models/inputmsk.py +141 -30
- cribl_control_plane/models/inputnetflow.py +47 -4
- cribl_control_plane/models/inputoffice365mgmt.py +112 -14
- cribl_control_plane/models/inputoffice365msgtrace.py +114 -16
- cribl_control_plane/models/inputoffice365service.py +114 -16
- cribl_control_plane/models/inputopentelemetry.py +143 -32
- cribl_control_plane/models/inputprometheus.py +193 -44
- cribl_control_plane/models/inputprometheusrw.py +114 -27
- cribl_control_plane/models/inputrawudp.py +47 -4
- cribl_control_plane/models/inputs3.py +78 -8
- cribl_control_plane/models/inputs3inventory.py +92 -10
- cribl_control_plane/models/inputsecuritylake.py +93 -10
- cribl_control_plane/models/inputsnmp.py +68 -6
- cribl_control_plane/models/inputsplunk.py +130 -28
- cribl_control_plane/models/inputsplunkhec.py +111 -25
- cribl_control_plane/models/inputsplunksearch.py +108 -14
- cribl_control_plane/models/inputsqs.py +99 -16
- cribl_control_plane/models/inputsyslog.py +189 -47
- cribl_control_plane/models/inputsystemmetrics.py +202 -32
- cribl_control_plane/models/inputsystemstate.py +61 -8
- cribl_control_plane/models/inputtcp.py +122 -26
- cribl_control_plane/models/inputtcpjson.py +112 -26
- cribl_control_plane/models/inputwef.py +121 -15
- cribl_control_plane/models/inputwindowsmetrics.py +186 -33
- cribl_control_plane/models/inputwineventlogs.py +93 -11
- cribl_control_plane/models/inputwiz.py +78 -8
- cribl_control_plane/models/inputwizwebhook.py +97 -24
- cribl_control_plane/models/inputzscalerhec.py +111 -25
- cribl_control_plane/models/jobinfo.py +34 -0
- cribl_control_plane/models/jobstatus.py +48 -0
- cribl_control_plane/models/lakedatasetmetrics.py +17 -0
- cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
- cribl_control_plane/models/listconfiggroupbyproductop.py +14 -1
- cribl_control_plane/models/logininfo.py +3 -3
- cribl_control_plane/models/masterworkerentry.py +17 -2
- cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
- cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
- cribl_control_plane/models/nodeprovidedinfo.py +11 -1
- cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
- cribl_control_plane/models/nodeupgradestate.py +2 -1
- cribl_control_plane/models/nodeupgradestatus.py +51 -5
- cribl_control_plane/models/outpostnodeinfo.py +16 -0
- cribl_control_plane/models/output.py +104 -90
- cribl_control_plane/models/outputazureblob.py +171 -18
- cribl_control_plane/models/outputazuredataexplorer.py +514 -90
- cribl_control_plane/models/outputazureeventhub.py +315 -31
- cribl_control_plane/models/outputazurelogs.py +145 -26
- cribl_control_plane/models/outputchronicle.py +532 -0
- cribl_control_plane/models/outputclickhouse.py +205 -34
- cribl_control_plane/models/outputcloudflarer2.py +632 -0
- cribl_control_plane/models/outputcloudwatch.py +129 -23
- cribl_control_plane/models/outputconfluentcloud.py +384 -57
- cribl_control_plane/models/outputcriblhttp.py +199 -32
- cribl_control_plane/models/outputcribllake.py +156 -16
- cribl_control_plane/models/outputcribltcp.py +194 -29
- cribl_control_plane/models/outputcrowdstrikenextgensiem.py +172 -28
- cribl_control_plane/models/outputdatabricks.py +501 -0
- cribl_control_plane/models/outputdatadog.py +199 -31
- cribl_control_plane/models/outputdataset.py +181 -29
- cribl_control_plane/models/outputdiskspool.py +17 -2
- cribl_control_plane/models/outputdls3.py +233 -24
- cribl_control_plane/models/outputdynatracehttp.py +208 -34
- cribl_control_plane/models/outputdynatraceotlp.py +210 -36
- cribl_control_plane/models/outputelastic.py +199 -30
- cribl_control_plane/models/outputelasticcloud.py +171 -26
- cribl_control_plane/models/outputexabeam.py +96 -10
- cribl_control_plane/models/outputfilesystem.py +139 -14
- cribl_control_plane/models/outputgooglechronicle.py +216 -35
- cribl_control_plane/models/outputgooglecloudlogging.py +174 -31
- cribl_control_plane/models/outputgooglecloudstorage.py +215 -24
- cribl_control_plane/models/outputgooglepubsub.py +131 -23
- cribl_control_plane/models/outputgrafanacloud.py +376 -74
- cribl_control_plane/models/outputgraphite.py +128 -25
- cribl_control_plane/models/outputhoneycomb.py +145 -26
- cribl_control_plane/models/outputhumiohec.py +162 -28
- cribl_control_plane/models/outputinfluxdb.py +165 -28
- cribl_control_plane/models/outputkafka.py +375 -52
- cribl_control_plane/models/outputkinesis.py +165 -27
- cribl_control_plane/models/outputloki.py +164 -34
- cribl_control_plane/models/outputmicrosoftfabric.py +540 -0
- cribl_control_plane/models/outputminio.py +225 -25
- cribl_control_plane/models/outputmsk.py +267 -54
- cribl_control_plane/models/outputnewrelic.py +171 -29
- cribl_control_plane/models/outputnewrelicevents.py +163 -28
- cribl_control_plane/models/outputopentelemetry.py +240 -40
- cribl_control_plane/models/outputprometheus.py +145 -26
- cribl_control_plane/models/outputring.py +49 -8
- cribl_control_plane/models/outputs3.py +233 -26
- cribl_control_plane/models/outputsecuritylake.py +179 -18
- cribl_control_plane/models/outputsentinel.py +172 -29
- cribl_control_plane/models/outputsentineloneaisiem.py +181 -35
- cribl_control_plane/models/outputservicenow.py +223 -38
- cribl_control_plane/models/outputsignalfx.py +145 -26
- cribl_control_plane/models/outputsns.py +143 -25
- cribl_control_plane/models/outputsplunk.py +206 -36
- cribl_control_plane/models/outputsplunkhec.py +238 -26
- cribl_control_plane/models/outputsplunklb.py +253 -43
- cribl_control_plane/models/outputsqs.py +163 -33
- cribl_control_plane/models/outputstatsd.py +127 -25
- cribl_control_plane/models/outputstatsdext.py +128 -25
- cribl_control_plane/models/outputsumologic.py +146 -25
- cribl_control_plane/models/outputsyslog.py +318 -46
- cribl_control_plane/models/outputtcpjson.py +186 -32
- cribl_control_plane/models/outputwavefront.py +145 -26
- cribl_control_plane/models/outputwebhook.py +211 -33
- cribl_control_plane/models/outputxsiam.py +143 -26
- cribl_control_plane/models/packinfo.py +8 -5
- cribl_control_plane/models/packinstallinfo.py +11 -8
- cribl_control_plane/models/productscore.py +2 -1
- cribl_control_plane/models/rbacresource.py +2 -1
- cribl_control_plane/models/resourcepolicy.py +15 -2
- cribl_control_plane/models/routeconf.py +3 -4
- cribl_control_plane/models/runnablejob.py +27 -0
- cribl_control_plane/models/runnablejobcollection.py +669 -0
- cribl_control_plane/models/runnablejobexecutor.py +368 -0
- cribl_control_plane/models/runnablejobscheduledsearch.py +286 -0
- cribl_control_plane/models/updateconfiggroupbyproductandidop.py +19 -2
- cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +19 -2
- cribl_control_plane/models/updatecribllakedatasetbylakeidandidop.py +9 -5
- cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +6 -5
- cribl_control_plane/models/updatepacksop.py +25 -0
- cribl_control_plane/models/updatepipelinebyidop.py +6 -6
- cribl_control_plane/models/updateroutesbyidop.py +2 -2
- cribl_control_plane/models/uploadpackresponse.py +13 -0
- cribl_control_plane/models/workertypes.py +2 -1
- cribl_control_plane/nodes.py +5 -3
- cribl_control_plane/packs.py +202 -7
- cribl_control_plane/pipelines.py +18 -18
- cribl_control_plane/routes_sdk.py +22 -22
- cribl_control_plane/sdk.py +19 -6
- cribl_control_plane/sources.py +5 -3
- cribl_control_plane/tokens.py +23 -15
- cribl_control_plane/utils/__init__.py +15 -3
- cribl_control_plane/utils/annotations.py +32 -8
- cribl_control_plane/utils/eventstreaming.py +10 -0
- cribl_control_plane/utils/retries.py +69 -5
- cribl_control_plane/utils/unmarshal_json_response.py +15 -1
- cribl_control_plane/versions.py +11 -6
- {cribl_control_plane-0.0.38.dist-info → cribl_control_plane-0.4.0a6.dist-info}/METADATA +69 -23
- cribl_control_plane-0.4.0a6.dist-info/RECORD +336 -0
- {cribl_control_plane-0.0.38.dist-info → cribl_control_plane-0.4.0a6.dist-info}/WHEEL +1 -1
- cribl_control_plane-0.4.0a6.dist-info/licenses/LICENSE +201 -0
- cribl_control_plane/errors/healthstatus_error.py +0 -32
- cribl_control_plane/models/appmode.py +0 -13
- cribl_control_plane/models/healthstatus.py +0 -33
- cribl_control_plane-0.0.38.dist-info/RECORD +0 -315
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
+
from cribl_control_plane import models, utils
|
|
4
5
|
from cribl_control_plane.types import BaseModel
|
|
6
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
5
7
|
from enum import Enum
|
|
6
8
|
import pydantic
|
|
9
|
+
from pydantic import field_serializer
|
|
10
|
+
from pydantic.functional_validators import PlainValidator
|
|
7
11
|
from typing import Any, List, Optional
|
|
8
12
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
9
13
|
|
|
@@ -23,20 +27,32 @@ class InputSnmpConnection(BaseModel):
|
|
|
23
27
|
pipeline: Optional[str] = None
|
|
24
28
|
|
|
25
29
|
|
|
26
|
-
class InputSnmpMode(str, Enum):
|
|
30
|
+
class InputSnmpMode(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
27
31
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
28
32
|
|
|
33
|
+
# Smart
|
|
29
34
|
SMART = "smart"
|
|
35
|
+
# Always On
|
|
30
36
|
ALWAYS = "always"
|
|
31
37
|
|
|
32
38
|
|
|
33
|
-
class InputSnmpCompression(str, Enum):
|
|
39
|
+
class InputSnmpCompression(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
34
40
|
r"""Codec to use to compress the persisted data"""
|
|
35
41
|
|
|
42
|
+
# None
|
|
36
43
|
NONE = "none"
|
|
44
|
+
# Gzip
|
|
37
45
|
GZIP = "gzip"
|
|
38
46
|
|
|
39
47
|
|
|
48
|
+
class InputSnmpPqControlsTypedDict(TypedDict):
|
|
49
|
+
pass
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class InputSnmpPqControls(BaseModel):
|
|
53
|
+
pass
|
|
54
|
+
|
|
55
|
+
|
|
40
56
|
class InputSnmpPqTypedDict(TypedDict):
|
|
41
57
|
mode: NotRequired[InputSnmpMode]
|
|
42
58
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
@@ -52,10 +68,13 @@ class InputSnmpPqTypedDict(TypedDict):
|
|
|
52
68
|
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
|
|
53
69
|
compress: NotRequired[InputSnmpCompression]
|
|
54
70
|
r"""Codec to use to compress the persisted data"""
|
|
71
|
+
pq_controls: NotRequired[InputSnmpPqControlsTypedDict]
|
|
55
72
|
|
|
56
73
|
|
|
57
74
|
class InputSnmpPq(BaseModel):
|
|
58
|
-
mode:
|
|
75
|
+
mode: Annotated[
|
|
76
|
+
Optional[InputSnmpMode], PlainValidator(validate_open_enum(False))
|
|
77
|
+
] = InputSnmpMode.ALWAYS
|
|
59
78
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
60
79
|
|
|
61
80
|
max_buffer_size: Annotated[
|
|
@@ -79,17 +98,48 @@ class InputSnmpPq(BaseModel):
|
|
|
79
98
|
path: Optional[str] = "$CRIBL_HOME/state/queues"
|
|
80
99
|
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
|
|
81
100
|
|
|
82
|
-
compress:
|
|
101
|
+
compress: Annotated[
|
|
102
|
+
Optional[InputSnmpCompression], PlainValidator(validate_open_enum(False))
|
|
103
|
+
] = InputSnmpCompression.NONE
|
|
83
104
|
r"""Codec to use to compress the persisted data"""
|
|
84
105
|
|
|
106
|
+
pq_controls: Annotated[
|
|
107
|
+
Optional[InputSnmpPqControls], pydantic.Field(alias="pqControls")
|
|
108
|
+
] = None
|
|
85
109
|
|
|
86
|
-
|
|
110
|
+
@field_serializer("mode")
|
|
111
|
+
def serialize_mode(self, value):
|
|
112
|
+
if isinstance(value, str):
|
|
113
|
+
try:
|
|
114
|
+
return models.InputSnmpMode(value)
|
|
115
|
+
except ValueError:
|
|
116
|
+
return value
|
|
117
|
+
return value
|
|
118
|
+
|
|
119
|
+
@field_serializer("compress")
|
|
120
|
+
def serialize_compress(self, value):
|
|
121
|
+
if isinstance(value, str):
|
|
122
|
+
try:
|
|
123
|
+
return models.InputSnmpCompression(value)
|
|
124
|
+
except ValueError:
|
|
125
|
+
return value
|
|
126
|
+
return value
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
class AuthenticationProtocol(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
130
|
+
# None
|
|
87
131
|
NONE = "none"
|
|
132
|
+
# MD5
|
|
88
133
|
MD5 = "md5"
|
|
134
|
+
# SHA1
|
|
89
135
|
SHA = "sha"
|
|
136
|
+
# SHA224
|
|
90
137
|
SHA224 = "sha224"
|
|
138
|
+
# SHA256
|
|
91
139
|
SHA256 = "sha256"
|
|
140
|
+
# SHA384
|
|
92
141
|
SHA384 = "sha384"
|
|
142
|
+
# SHA512
|
|
93
143
|
SHA512 = "sha512"
|
|
94
144
|
|
|
95
145
|
|
|
@@ -104,7 +154,10 @@ class V3User(BaseModel):
|
|
|
104
154
|
name: str
|
|
105
155
|
|
|
106
156
|
auth_protocol: Annotated[
|
|
107
|
-
|
|
157
|
+
Annotated[
|
|
158
|
+
Optional[AuthenticationProtocol], PlainValidator(validate_open_enum(False))
|
|
159
|
+
],
|
|
160
|
+
pydantic.Field(alias="authProtocol"),
|
|
108
161
|
] = AuthenticationProtocol.NONE
|
|
109
162
|
|
|
110
163
|
auth_key: Annotated[Optional[Any], pydantic.Field(alias="authKey")] = None
|
|
@@ -113,6 +166,15 @@ class V3User(BaseModel):
|
|
|
113
166
|
"none"
|
|
114
167
|
)
|
|
115
168
|
|
|
169
|
+
@field_serializer("auth_protocol")
|
|
170
|
+
def serialize_auth_protocol(self, value):
|
|
171
|
+
if isinstance(value, str):
|
|
172
|
+
try:
|
|
173
|
+
return models.AuthenticationProtocol(value)
|
|
174
|
+
except ValueError:
|
|
175
|
+
return value
|
|
176
|
+
return value
|
|
177
|
+
|
|
116
178
|
|
|
117
179
|
class SNMPv3AuthenticationTypedDict(TypedDict):
|
|
118
180
|
r"""Authentication parameters for SNMPv3 trap. Set the log level to debug if you are experiencing authentication or decryption issues."""
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
+
from cribl_control_plane import models, utils
|
|
4
5
|
from cribl_control_plane.types import BaseModel
|
|
6
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
5
7
|
from enum import Enum
|
|
6
8
|
import pydantic
|
|
7
|
-
from
|
|
9
|
+
from pydantic import field_serializer
|
|
10
|
+
from pydantic.functional_validators import PlainValidator
|
|
11
|
+
from typing import List, Optional
|
|
8
12
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
9
13
|
|
|
10
14
|
|
|
@@ -23,20 +27,32 @@ class InputSplunkConnection(BaseModel):
|
|
|
23
27
|
pipeline: Optional[str] = None
|
|
24
28
|
|
|
25
29
|
|
|
26
|
-
class InputSplunkMode(str, Enum):
|
|
30
|
+
class InputSplunkMode(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
27
31
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
28
32
|
|
|
33
|
+
# Smart
|
|
29
34
|
SMART = "smart"
|
|
35
|
+
# Always On
|
|
30
36
|
ALWAYS = "always"
|
|
31
37
|
|
|
32
38
|
|
|
33
|
-
class InputSplunkPqCompression(str, Enum):
|
|
39
|
+
class InputSplunkPqCompression(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
34
40
|
r"""Codec to use to compress the persisted data"""
|
|
35
41
|
|
|
42
|
+
# None
|
|
36
43
|
NONE = "none"
|
|
44
|
+
# Gzip
|
|
37
45
|
GZIP = "gzip"
|
|
38
46
|
|
|
39
47
|
|
|
48
|
+
class InputSplunkPqControlsTypedDict(TypedDict):
|
|
49
|
+
pass
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class InputSplunkPqControls(BaseModel):
|
|
53
|
+
pass
|
|
54
|
+
|
|
55
|
+
|
|
40
56
|
class InputSplunkPqTypedDict(TypedDict):
|
|
41
57
|
mode: NotRequired[InputSplunkMode]
|
|
42
58
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
@@ -52,10 +68,13 @@ class InputSplunkPqTypedDict(TypedDict):
|
|
|
52
68
|
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
|
|
53
69
|
compress: NotRequired[InputSplunkPqCompression]
|
|
54
70
|
r"""Codec to use to compress the persisted data"""
|
|
71
|
+
pq_controls: NotRequired[InputSplunkPqControlsTypedDict]
|
|
55
72
|
|
|
56
73
|
|
|
57
74
|
class InputSplunkPq(BaseModel):
|
|
58
|
-
mode:
|
|
75
|
+
mode: Annotated[
|
|
76
|
+
Optional[InputSplunkMode], PlainValidator(validate_open_enum(False))
|
|
77
|
+
] = InputSplunkMode.ALWAYS
|
|
59
78
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
60
79
|
|
|
61
80
|
max_buffer_size: Annotated[
|
|
@@ -79,18 +98,42 @@ class InputSplunkPq(BaseModel):
|
|
|
79
98
|
path: Optional[str] = "$CRIBL_HOME/state/queues"
|
|
80
99
|
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
|
|
81
100
|
|
|
82
|
-
compress:
|
|
101
|
+
compress: Annotated[
|
|
102
|
+
Optional[InputSplunkPqCompression], PlainValidator(validate_open_enum(False))
|
|
103
|
+
] = InputSplunkPqCompression.NONE
|
|
83
104
|
r"""Codec to use to compress the persisted data"""
|
|
84
105
|
|
|
106
|
+
pq_controls: Annotated[
|
|
107
|
+
Optional[InputSplunkPqControls], pydantic.Field(alias="pqControls")
|
|
108
|
+
] = None
|
|
85
109
|
|
|
86
|
-
|
|
110
|
+
@field_serializer("mode")
|
|
111
|
+
def serialize_mode(self, value):
|
|
112
|
+
if isinstance(value, str):
|
|
113
|
+
try:
|
|
114
|
+
return models.InputSplunkMode(value)
|
|
115
|
+
except ValueError:
|
|
116
|
+
return value
|
|
117
|
+
return value
|
|
118
|
+
|
|
119
|
+
@field_serializer("compress")
|
|
120
|
+
def serialize_compress(self, value):
|
|
121
|
+
if isinstance(value, str):
|
|
122
|
+
try:
|
|
123
|
+
return models.InputSplunkPqCompression(value)
|
|
124
|
+
except ValueError:
|
|
125
|
+
return value
|
|
126
|
+
return value
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
class InputSplunkMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
87
130
|
TL_SV1 = "TLSv1"
|
|
88
131
|
TL_SV1_1 = "TLSv1.1"
|
|
89
132
|
TL_SV1_2 = "TLSv1.2"
|
|
90
133
|
TL_SV1_3 = "TLSv1.3"
|
|
91
134
|
|
|
92
135
|
|
|
93
|
-
class InputSplunkMaximumTLSVersion(str, Enum):
|
|
136
|
+
class InputSplunkMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
94
137
|
TL_SV1 = "TLSv1"
|
|
95
138
|
TL_SV1_1 = "TLSv1.1"
|
|
96
139
|
TL_SV1_2 = "TLSv1.2"
|
|
@@ -99,6 +142,12 @@ class InputSplunkMaximumTLSVersion(str, Enum):
|
|
|
99
142
|
|
|
100
143
|
class InputSplunkTLSSettingsServerSideTypedDict(TypedDict):
|
|
101
144
|
disabled: NotRequired[bool]
|
|
145
|
+
request_cert: NotRequired[bool]
|
|
146
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
147
|
+
reject_unauthorized: NotRequired[bool]
|
|
148
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
149
|
+
common_name_regex: NotRequired[str]
|
|
150
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
102
151
|
certificate_name: NotRequired[str]
|
|
103
152
|
r"""The name of the predefined certificate"""
|
|
104
153
|
priv_key_path: NotRequired[str]
|
|
@@ -109,10 +158,6 @@ class InputSplunkTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
109
158
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
110
159
|
ca_path: NotRequired[str]
|
|
111
160
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
112
|
-
request_cert: NotRequired[bool]
|
|
113
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
114
|
-
reject_unauthorized: NotRequired[Any]
|
|
115
|
-
common_name_regex: NotRequired[Any]
|
|
116
161
|
min_version: NotRequired[InputSplunkMinimumTLSVersion]
|
|
117
162
|
max_version: NotRequired[InputSplunkMaximumTLSVersion]
|
|
118
163
|
|
|
@@ -120,6 +165,19 @@ class InputSplunkTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
120
165
|
class InputSplunkTLSSettingsServerSide(BaseModel):
|
|
121
166
|
disabled: Optional[bool] = True
|
|
122
167
|
|
|
168
|
+
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
169
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
170
|
+
|
|
171
|
+
reject_unauthorized: Annotated[
|
|
172
|
+
Optional[bool], pydantic.Field(alias="rejectUnauthorized")
|
|
173
|
+
] = True
|
|
174
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
175
|
+
|
|
176
|
+
common_name_regex: Annotated[
|
|
177
|
+
Optional[str], pydantic.Field(alias="commonNameRegex")
|
|
178
|
+
] = "/.*/"
|
|
179
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
180
|
+
|
|
123
181
|
certificate_name: Annotated[
|
|
124
182
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
125
183
|
] = None
|
|
@@ -137,25 +195,40 @@ class InputSplunkTLSSettingsServerSide(BaseModel):
|
|
|
137
195
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
138
196
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
139
197
|
|
|
140
|
-
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
141
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
142
|
-
|
|
143
|
-
reject_unauthorized: Annotated[
|
|
144
|
-
Optional[Any], pydantic.Field(alias="rejectUnauthorized")
|
|
145
|
-
] = None
|
|
146
|
-
|
|
147
|
-
common_name_regex: Annotated[
|
|
148
|
-
Optional[Any], pydantic.Field(alias="commonNameRegex")
|
|
149
|
-
] = None
|
|
150
|
-
|
|
151
198
|
min_version: Annotated[
|
|
152
|
-
|
|
199
|
+
Annotated[
|
|
200
|
+
Optional[InputSplunkMinimumTLSVersion],
|
|
201
|
+
PlainValidator(validate_open_enum(False)),
|
|
202
|
+
],
|
|
203
|
+
pydantic.Field(alias="minVersion"),
|
|
153
204
|
] = None
|
|
154
205
|
|
|
155
206
|
max_version: Annotated[
|
|
156
|
-
|
|
207
|
+
Annotated[
|
|
208
|
+
Optional[InputSplunkMaximumTLSVersion],
|
|
209
|
+
PlainValidator(validate_open_enum(False)),
|
|
210
|
+
],
|
|
211
|
+
pydantic.Field(alias="maxVersion"),
|
|
157
212
|
] = None
|
|
158
213
|
|
|
214
|
+
@field_serializer("min_version")
|
|
215
|
+
def serialize_min_version(self, value):
|
|
216
|
+
if isinstance(value, str):
|
|
217
|
+
try:
|
|
218
|
+
return models.InputSplunkMinimumTLSVersion(value)
|
|
219
|
+
except ValueError:
|
|
220
|
+
return value
|
|
221
|
+
return value
|
|
222
|
+
|
|
223
|
+
@field_serializer("max_version")
|
|
224
|
+
def serialize_max_version(self, value):
|
|
225
|
+
if isinstance(value, str):
|
|
226
|
+
try:
|
|
227
|
+
return models.InputSplunkMaximumTLSVersion(value)
|
|
228
|
+
except ValueError:
|
|
229
|
+
return value
|
|
230
|
+
return value
|
|
231
|
+
|
|
159
232
|
|
|
160
233
|
class InputSplunkMetadatumTypedDict(TypedDict):
|
|
161
234
|
name: str
|
|
@@ -183,18 +256,23 @@ class InputSplunkAuthToken(BaseModel):
|
|
|
183
256
|
description: Optional[str] = None
|
|
184
257
|
|
|
185
258
|
|
|
186
|
-
class InputSplunkMaxS2SVersion(str, Enum):
|
|
259
|
+
class InputSplunkMaxS2SVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
187
260
|
r"""The highest S2S protocol version to advertise during handshake"""
|
|
188
261
|
|
|
262
|
+
# v3
|
|
189
263
|
V3 = "v3"
|
|
264
|
+
# v4
|
|
190
265
|
V4 = "v4"
|
|
191
266
|
|
|
192
267
|
|
|
193
|
-
class InputSplunkCompression(str, Enum):
|
|
268
|
+
class InputSplunkCompression(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
194
269
|
r"""Controls whether to support reading compressed data from a forwarder. Select 'Automatic' to match the forwarder's configuration, or 'Disabled' to reject compressed connections."""
|
|
195
270
|
|
|
271
|
+
# Disabled
|
|
196
272
|
DISABLED = "disabled"
|
|
273
|
+
# Automatic
|
|
197
274
|
AUTO = "auto"
|
|
275
|
+
# Always
|
|
198
276
|
ALWAYS = "always"
|
|
199
277
|
|
|
200
278
|
|
|
@@ -341,7 +419,11 @@ class InputSplunk(BaseModel):
|
|
|
341
419
|
r"""Shared secrets to be provided by any Splunk forwarder. If empty, unauthorized access is permitted."""
|
|
342
420
|
|
|
343
421
|
max_s2_sversion: Annotated[
|
|
344
|
-
|
|
422
|
+
Annotated[
|
|
423
|
+
Optional[InputSplunkMaxS2SVersion],
|
|
424
|
+
PlainValidator(validate_open_enum(False)),
|
|
425
|
+
],
|
|
426
|
+
pydantic.Field(alias="maxS2Sversion"),
|
|
345
427
|
] = InputSplunkMaxS2SVersion.V3
|
|
346
428
|
r"""The highest S2S protocol version to advertise during handshake"""
|
|
347
429
|
|
|
@@ -362,5 +444,25 @@ class InputSplunk(BaseModel):
|
|
|
362
444
|
] = False
|
|
363
445
|
r"""Extract and process Splunk-generated metrics as Cribl metrics"""
|
|
364
446
|
|
|
365
|
-
compress:
|
|
447
|
+
compress: Annotated[
|
|
448
|
+
Optional[InputSplunkCompression], PlainValidator(validate_open_enum(False))
|
|
449
|
+
] = InputSplunkCompression.DISABLED
|
|
366
450
|
r"""Controls whether to support reading compressed data from a forwarder. Select 'Automatic' to match the forwarder's configuration, or 'Disabled' to reject compressed connections."""
|
|
451
|
+
|
|
452
|
+
@field_serializer("max_s2_sversion")
|
|
453
|
+
def serialize_max_s2_sversion(self, value):
|
|
454
|
+
if isinstance(value, str):
|
|
455
|
+
try:
|
|
456
|
+
return models.InputSplunkMaxS2SVersion(value)
|
|
457
|
+
except ValueError:
|
|
458
|
+
return value
|
|
459
|
+
return value
|
|
460
|
+
|
|
461
|
+
@field_serializer("compress")
|
|
462
|
+
def serialize_compress(self, value):
|
|
463
|
+
if isinstance(value, str):
|
|
464
|
+
try:
|
|
465
|
+
return models.InputSplunkCompression(value)
|
|
466
|
+
except ValueError:
|
|
467
|
+
return value
|
|
468
|
+
return value
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
+
from cribl_control_plane import models, utils
|
|
4
5
|
from cribl_control_plane.types import BaseModel
|
|
6
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
5
7
|
from enum import Enum
|
|
6
8
|
import pydantic
|
|
9
|
+
from pydantic import field_serializer
|
|
10
|
+
from pydantic.functional_validators import PlainValidator
|
|
7
11
|
from typing import Any, List, Optional
|
|
8
12
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
9
13
|
|
|
@@ -23,20 +27,32 @@ class InputSplunkHecConnection(BaseModel):
|
|
|
23
27
|
pipeline: Optional[str] = None
|
|
24
28
|
|
|
25
29
|
|
|
26
|
-
class InputSplunkHecMode(str, Enum):
|
|
30
|
+
class InputSplunkHecMode(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
27
31
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
28
32
|
|
|
33
|
+
# Smart
|
|
29
34
|
SMART = "smart"
|
|
35
|
+
# Always On
|
|
30
36
|
ALWAYS = "always"
|
|
31
37
|
|
|
32
38
|
|
|
33
|
-
class InputSplunkHecCompression(str, Enum):
|
|
39
|
+
class InputSplunkHecCompression(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
34
40
|
r"""Codec to use to compress the persisted data"""
|
|
35
41
|
|
|
42
|
+
# None
|
|
36
43
|
NONE = "none"
|
|
44
|
+
# Gzip
|
|
37
45
|
GZIP = "gzip"
|
|
38
46
|
|
|
39
47
|
|
|
48
|
+
class InputSplunkHecPqControlsTypedDict(TypedDict):
|
|
49
|
+
pass
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class InputSplunkHecPqControls(BaseModel):
|
|
53
|
+
pass
|
|
54
|
+
|
|
55
|
+
|
|
40
56
|
class InputSplunkHecPqTypedDict(TypedDict):
|
|
41
57
|
mode: NotRequired[InputSplunkHecMode]
|
|
42
58
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
@@ -52,10 +68,13 @@ class InputSplunkHecPqTypedDict(TypedDict):
|
|
|
52
68
|
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
|
|
53
69
|
compress: NotRequired[InputSplunkHecCompression]
|
|
54
70
|
r"""Codec to use to compress the persisted data"""
|
|
71
|
+
pq_controls: NotRequired[InputSplunkHecPqControlsTypedDict]
|
|
55
72
|
|
|
56
73
|
|
|
57
74
|
class InputSplunkHecPq(BaseModel):
|
|
58
|
-
mode:
|
|
75
|
+
mode: Annotated[
|
|
76
|
+
Optional[InputSplunkHecMode], PlainValidator(validate_open_enum(False))
|
|
77
|
+
] = InputSplunkHecMode.ALWAYS
|
|
59
78
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
60
79
|
|
|
61
80
|
max_buffer_size: Annotated[
|
|
@@ -79,11 +98,35 @@ class InputSplunkHecPq(BaseModel):
|
|
|
79
98
|
path: Optional[str] = "$CRIBL_HOME/state/queues"
|
|
80
99
|
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
|
|
81
100
|
|
|
82
|
-
compress:
|
|
101
|
+
compress: Annotated[
|
|
102
|
+
Optional[InputSplunkHecCompression], PlainValidator(validate_open_enum(False))
|
|
103
|
+
] = InputSplunkHecCompression.NONE
|
|
83
104
|
r"""Codec to use to compress the persisted data"""
|
|
84
105
|
|
|
106
|
+
pq_controls: Annotated[
|
|
107
|
+
Optional[InputSplunkHecPqControls], pydantic.Field(alias="pqControls")
|
|
108
|
+
] = None
|
|
85
109
|
|
|
86
|
-
|
|
110
|
+
@field_serializer("mode")
|
|
111
|
+
def serialize_mode(self, value):
|
|
112
|
+
if isinstance(value, str):
|
|
113
|
+
try:
|
|
114
|
+
return models.InputSplunkHecMode(value)
|
|
115
|
+
except ValueError:
|
|
116
|
+
return value
|
|
117
|
+
return value
|
|
118
|
+
|
|
119
|
+
@field_serializer("compress")
|
|
120
|
+
def serialize_compress(self, value):
|
|
121
|
+
if isinstance(value, str):
|
|
122
|
+
try:
|
|
123
|
+
return models.InputSplunkHecCompression(value)
|
|
124
|
+
except ValueError:
|
|
125
|
+
return value
|
|
126
|
+
return value
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
class InputSplunkHecAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
87
130
|
r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
|
|
88
131
|
|
|
89
132
|
MANUAL = "manual"
|
|
@@ -121,7 +164,11 @@ class InputSplunkHecAuthToken(BaseModel):
|
|
|
121
164
|
token: Any
|
|
122
165
|
|
|
123
166
|
auth_type: Annotated[
|
|
124
|
-
|
|
167
|
+
Annotated[
|
|
168
|
+
Optional[InputSplunkHecAuthenticationMethod],
|
|
169
|
+
PlainValidator(validate_open_enum(False)),
|
|
170
|
+
],
|
|
171
|
+
pydantic.Field(alias="authType"),
|
|
125
172
|
] = InputSplunkHecAuthenticationMethod.MANUAL
|
|
126
173
|
r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
|
|
127
174
|
|
|
@@ -140,15 +187,24 @@ class InputSplunkHecAuthToken(BaseModel):
|
|
|
140
187
|
metadata: Optional[List[InputSplunkHecAuthTokenMetadatum]] = None
|
|
141
188
|
r"""Fields to add to events referencing this token"""
|
|
142
189
|
|
|
190
|
+
@field_serializer("auth_type")
|
|
191
|
+
def serialize_auth_type(self, value):
|
|
192
|
+
if isinstance(value, str):
|
|
193
|
+
try:
|
|
194
|
+
return models.InputSplunkHecAuthenticationMethod(value)
|
|
195
|
+
except ValueError:
|
|
196
|
+
return value
|
|
197
|
+
return value
|
|
198
|
+
|
|
143
199
|
|
|
144
|
-
class InputSplunkHecMinimumTLSVersion(str, Enum):
|
|
200
|
+
class InputSplunkHecMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
145
201
|
TL_SV1 = "TLSv1"
|
|
146
202
|
TL_SV1_1 = "TLSv1.1"
|
|
147
203
|
TL_SV1_2 = "TLSv1.2"
|
|
148
204
|
TL_SV1_3 = "TLSv1.3"
|
|
149
205
|
|
|
150
206
|
|
|
151
|
-
class InputSplunkHecMaximumTLSVersion(str, Enum):
|
|
207
|
+
class InputSplunkHecMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
152
208
|
TL_SV1 = "TLSv1"
|
|
153
209
|
TL_SV1_1 = "TLSv1.1"
|
|
154
210
|
TL_SV1_2 = "TLSv1.2"
|
|
@@ -157,6 +213,12 @@ class InputSplunkHecMaximumTLSVersion(str, Enum):
|
|
|
157
213
|
|
|
158
214
|
class InputSplunkHecTLSSettingsServerSideTypedDict(TypedDict):
|
|
159
215
|
disabled: NotRequired[bool]
|
|
216
|
+
request_cert: NotRequired[bool]
|
|
217
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
218
|
+
reject_unauthorized: NotRequired[bool]
|
|
219
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
220
|
+
common_name_regex: NotRequired[str]
|
|
221
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
160
222
|
certificate_name: NotRequired[str]
|
|
161
223
|
r"""The name of the predefined certificate"""
|
|
162
224
|
priv_key_path: NotRequired[str]
|
|
@@ -167,10 +229,6 @@ class InputSplunkHecTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
167
229
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
168
230
|
ca_path: NotRequired[str]
|
|
169
231
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
170
|
-
request_cert: NotRequired[bool]
|
|
171
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
172
|
-
reject_unauthorized: NotRequired[Any]
|
|
173
|
-
common_name_regex: NotRequired[Any]
|
|
174
232
|
min_version: NotRequired[InputSplunkHecMinimumTLSVersion]
|
|
175
233
|
max_version: NotRequired[InputSplunkHecMaximumTLSVersion]
|
|
176
234
|
|
|
@@ -178,6 +236,19 @@ class InputSplunkHecTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
178
236
|
class InputSplunkHecTLSSettingsServerSide(BaseModel):
|
|
179
237
|
disabled: Optional[bool] = True
|
|
180
238
|
|
|
239
|
+
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
240
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
241
|
+
|
|
242
|
+
reject_unauthorized: Annotated[
|
|
243
|
+
Optional[bool], pydantic.Field(alias="rejectUnauthorized")
|
|
244
|
+
] = True
|
|
245
|
+
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
246
|
+
|
|
247
|
+
common_name_regex: Annotated[
|
|
248
|
+
Optional[str], pydantic.Field(alias="commonNameRegex")
|
|
249
|
+
] = "/.*/"
|
|
250
|
+
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
251
|
+
|
|
181
252
|
certificate_name: Annotated[
|
|
182
253
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
183
254
|
] = None
|
|
@@ -195,25 +266,40 @@ class InputSplunkHecTLSSettingsServerSide(BaseModel):
|
|
|
195
266
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
196
267
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
197
268
|
|
|
198
|
-
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
199
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
200
|
-
|
|
201
|
-
reject_unauthorized: Annotated[
|
|
202
|
-
Optional[Any], pydantic.Field(alias="rejectUnauthorized")
|
|
203
|
-
] = None
|
|
204
|
-
|
|
205
|
-
common_name_regex: Annotated[
|
|
206
|
-
Optional[Any], pydantic.Field(alias="commonNameRegex")
|
|
207
|
-
] = None
|
|
208
|
-
|
|
209
269
|
min_version: Annotated[
|
|
210
|
-
|
|
270
|
+
Annotated[
|
|
271
|
+
Optional[InputSplunkHecMinimumTLSVersion],
|
|
272
|
+
PlainValidator(validate_open_enum(False)),
|
|
273
|
+
],
|
|
274
|
+
pydantic.Field(alias="minVersion"),
|
|
211
275
|
] = None
|
|
212
276
|
|
|
213
277
|
max_version: Annotated[
|
|
214
|
-
|
|
278
|
+
Annotated[
|
|
279
|
+
Optional[InputSplunkHecMaximumTLSVersion],
|
|
280
|
+
PlainValidator(validate_open_enum(False)),
|
|
281
|
+
],
|
|
282
|
+
pydantic.Field(alias="maxVersion"),
|
|
215
283
|
] = None
|
|
216
284
|
|
|
285
|
+
@field_serializer("min_version")
|
|
286
|
+
def serialize_min_version(self, value):
|
|
287
|
+
if isinstance(value, str):
|
|
288
|
+
try:
|
|
289
|
+
return models.InputSplunkHecMinimumTLSVersion(value)
|
|
290
|
+
except ValueError:
|
|
291
|
+
return value
|
|
292
|
+
return value
|
|
293
|
+
|
|
294
|
+
@field_serializer("max_version")
|
|
295
|
+
def serialize_max_version(self, value):
|
|
296
|
+
if isinstance(value, str):
|
|
297
|
+
try:
|
|
298
|
+
return models.InputSplunkHecMaximumTLSVersion(value)
|
|
299
|
+
except ValueError:
|
|
300
|
+
return value
|
|
301
|
+
return value
|
|
302
|
+
|
|
217
303
|
|
|
218
304
|
class InputSplunkHecMetadatumTypedDict(TypedDict):
|
|
219
305
|
name: str
|