cribl-control-plane 0.4.0b23__py3-none-any.whl → 0.5.0b3__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.
- cribl_control_plane/_version.py +3 -3
- cribl_control_plane/collectors_sdk.py +993 -0
- cribl_control_plane/models/__init__.py +2161 -734
- cribl_control_plane/models/configgroup.py +3 -0
- cribl_control_plane/models/countedsavedjob.py +20 -0
- cribl_control_plane/models/createsavedjobop.py +30 -0
- cribl_control_plane/models/deletesavedjobbyidop.py +42 -0
- cribl_control_plane/models/functionaggregatemetrics.py +7 -144
- cribl_control_plane/models/functionaggregation.py +7 -110
- cribl_control_plane/models/functionautotimestamp.py +7 -111
- cribl_control_plane/models/functioncef.py +6 -51
- cribl_control_plane/models/functionchain.py +6 -12
- cribl_control_plane/models/functionclone.py +7 -13
- cribl_control_plane/models/functioncode.py +8 -35
- cribl_control_plane/models/functioncomment.py +6 -12
- cribl_control_plane/models/functionconfschemaaggregatemetrics.py +153 -0
- cribl_control_plane/models/functionconfschemaaggregation.py +114 -0
- cribl_control_plane/models/functionconfschemaautotimestamp.py +116 -0
- cribl_control_plane/models/functionconfschemacef.py +83 -0
- cribl_control_plane/models/functionconfschemachain.py +16 -0
- cribl_control_plane/models/functionconfschemaclone.py +16 -0
- cribl_control_plane/models/functionconfschemacode.py +38 -0
- cribl_control_plane/models/functionconfschemacomment.py +16 -0
- cribl_control_plane/models/functionconfschemadistinct.py +41 -0
- cribl_control_plane/models/functionconfschemadnslookup.py +193 -0
- cribl_control_plane/models/functionconfschemadrop.py +13 -0
- cribl_control_plane/models/functionconfschemadropdimensions.py +31 -0
- cribl_control_plane/models/functionconfschemadynamicsampling.py +67 -0
- cribl_control_plane/models/functionconfschemaeval.py +44 -0
- cribl_control_plane/models/functionconfschemaeventbreaker.py +51 -0
- cribl_control_plane/models/functionconfschemaeventstats.py +34 -0
- cribl_control_plane/models/functionconfschemaexternaldata.py +13 -0
- cribl_control_plane/models/functionconfschemaflatten.py +31 -0
- cribl_control_plane/models/functionconfschemafoldkeys.py +31 -0
- cribl_control_plane/models/functionconfschemagenstats.py +14 -0
- cribl_control_plane/models/functionconfschemageoip.py +66 -0
- cribl_control_plane/models/functionconfschemagrok.py +38 -0
- cribl_control_plane/models/functionconfschemahandlebar.py +56 -0
- cribl_control_plane/models/functionconfschemajoin.py +55 -0
- cribl_control_plane/models/functionconfschemajsonunroll.py +21 -0
- cribl_control_plane/models/functionconfschemalakeexport.py +44 -0
- cribl_control_plane/models/functionconfschemalimit.py +16 -0
- cribl_control_plane/models/functionconfschemalocalsearchdatatypeparser.py +17 -0
- cribl_control_plane/models/functionconfschemalocalsearchrulesetrunner.py +40 -0
- cribl_control_plane/models/functionconfschemalookup.py +92 -0
- cribl_control_plane/models/functionconfschemamask.py +63 -0
- cribl_control_plane/models/functionconfschemamvexpand.py +76 -0
- cribl_control_plane/models/functionconfschemamvpull.py +45 -0
- cribl_control_plane/models/functionconfschemanotificationpolicies.py +129 -0
- cribl_control_plane/models/functionconfschemanotifications.py +26 -0
- cribl_control_plane/models/functionconfschemanotify.py +149 -0
- cribl_control_plane/models/functionconfschemanumerify.py +63 -0
- cribl_control_plane/models/functionconfschemaotlplogs.py +24 -0
- cribl_control_plane/models/functionconfschemaotlpmetrics.py +61 -0
- cribl_control_plane/models/functionconfschemaotlptraces.py +54 -0
- cribl_control_plane/models/functionconfschemapack.py +24 -0
- cribl_control_plane/models/functionconfschemapivot.py +31 -0
- cribl_control_plane/models/functionconfschemapublishmetrics.py +98 -0
- cribl_control_plane/models/functionconfschemaredis.py +121 -0
- cribl_control_plane/models/functionconfschemaregexextract.py +55 -0
- cribl_control_plane/models/functionconfschemaregexfilter.py +38 -0
- cribl_control_plane/models/functionconfschemarename.py +49 -0
- cribl_control_plane/models/functionconfschemarollupmetrics.py +57 -0
- cribl_control_plane/models/functionconfschemasampling.py +32 -0
- cribl_control_plane/models/functionconfschemasend.py +84 -0
- cribl_control_plane/models/functionconfschemasensitivedatascanner.py +75 -0
- cribl_control_plane/models/functionconfschemaserde.py +105 -0
- cribl_control_plane/models/functionconfschemaserialize.py +78 -0
- cribl_control_plane/models/functionconfschemasidlookup.py +34 -0
- cribl_control_plane/models/functionconfschemasnmptrapserialize.py +92 -0
- cribl_control_plane/models/functionconfschemasort.py +41 -0
- cribl_control_plane/models/functionconfschemastore.py +75 -0
- cribl_control_plane/models/functionconfschemasuppress.py +57 -0
- cribl_control_plane/models/functionconfschematee.py +32 -0
- cribl_control_plane/models/functionconfschematrimtimestamp.py +16 -0
- cribl_control_plane/models/functionconfschemaunion.py +22 -0
- cribl_control_plane/models/functionconfschemaunroll.py +22 -0
- cribl_control_plane/models/functionconfschemawindow.py +40 -0
- cribl_control_plane/models/functionconfschemaxmlunroll.py +34 -0
- cribl_control_plane/models/functiondistinct.py +7 -37
- cribl_control_plane/models/functiondnslookup.py +7 -188
- cribl_control_plane/models/functiondrop.py +8 -12
- cribl_control_plane/models/functiondropdimensions.py +7 -25
- cribl_control_plane/models/functiondynamicsampling.py +6 -58
- cribl_control_plane/models/functioneval.py +9 -43
- cribl_control_plane/models/functioneventbreaker.py +6 -40
- cribl_control_plane/models/functioneventstats.py +7 -30
- cribl_control_plane/models/functionexternaldata.py +6 -10
- cribl_control_plane/models/functionflatten.py +7 -28
- cribl_control_plane/models/functionfoldkeys.py +6 -26
- cribl_control_plane/models/functiongenstats.py +7 -11
- cribl_control_plane/models/functiongeoip.py +7 -58
- cribl_control_plane/models/functiongrok.py +9 -35
- cribl_control_plane/models/functionhandlebar.py +6 -49
- cribl_control_plane/models/functionjoin.py +9 -52
- cribl_control_plane/models/functionjsonunroll.py +6 -17
- cribl_control_plane/models/functionlakeexport.py +6 -39
- cribl_control_plane/models/functionlimit.py +6 -12
- cribl_control_plane/models/functionlocalsearchdatatypeparser.py +6 -12
- cribl_control_plane/models/functionlocalsearchrulesetrunner.py +7 -34
- cribl_control_plane/models/functionlookup.py +7 -86
- cribl_control_plane/models/functionmask.py +9 -61
- cribl_control_plane/models/functionmvexpand.py +7 -66
- cribl_control_plane/models/functionmvpull.py +6 -36
- cribl_control_plane/models/functionnotificationpolicies.py +8 -125
- cribl_control_plane/models/functionnotifications.py +6 -22
- cribl_control_plane/models/functionnotify.py +6 -133
- cribl_control_plane/models/functionnumerify.py +7 -57
- cribl_control_plane/models/functionotlplogs.py +6 -19
- cribl_control_plane/models/functionotlpmetrics.py +7 -56
- cribl_control_plane/models/functionotlptraces.py +6 -48
- cribl_control_plane/models/functionpack.py +9 -20
- cribl_control_plane/models/functionpivot.py +7 -23
- cribl_control_plane/models/functionpublishmetrics.py +7 -91
- cribl_control_plane/models/functionredis.py +7 -111
- cribl_control_plane/models/functionregexextract.py +7 -50
- cribl_control_plane/models/functionregexfilter.py +7 -33
- cribl_control_plane/models/functionrename.py +7 -45
- cribl_control_plane/models/functionrollupmetrics.py +7 -52
- cribl_control_plane/models/functionsampling.py +7 -28
- cribl_control_plane/models/functionsend.py +8 -80
- cribl_control_plane/models/functionsensitivedatascanner.py +7 -66
- cribl_control_plane/models/functionserde.py +6 -98
- cribl_control_plane/models/functionserialize.py +7 -72
- cribl_control_plane/models/functionsidlookup.py +7 -31
- cribl_control_plane/models/functionsnmptrapserialize.py +6 -81
- cribl_control_plane/models/functionsort.py +8 -36
- cribl_control_plane/models/functionstore.py +6 -69
- cribl_control_plane/models/functionsuppress.py +6 -52
- cribl_control_plane/models/functiontee.py +6 -30
- cribl_control_plane/models/functiontrimtimestamp.py +6 -12
- cribl_control_plane/models/functionunion.py +9 -20
- cribl_control_plane/models/functionunroll.py +6 -17
- cribl_control_plane/models/functionwindow.py +7 -34
- cribl_control_plane/models/functionxmlunroll.py +6 -29
- cribl_control_plane/models/getsavedjobbyidop.py +33 -0
- cribl_control_plane/models/getsavedjobop.py +40 -0
- cribl_control_plane/models/groupcreaterequest.py +3 -0
- cribl_control_plane/models/heartbeatmetadata.py +42 -0
- cribl_control_plane/models/input.py +1 -1
- cribl_control_plane/models/inputedgeprometheus.py +11 -11
- cribl_control_plane/models/inputprometheus.py +23 -18
- cribl_control_plane/models/nodeprovidedinfo.py +42 -0
- cribl_control_plane/models/output.py +15 -9
- cribl_control_plane/models/outputclickhouse.py +31 -0
- cribl_control_plane/models/outputcriblhttp.py +7 -0
- cribl_control_plane/models/outputcriblsearchengine.py +655 -0
- cribl_control_plane/models/outputnetflow.py +16 -2
- cribl_control_plane/models/pipeline.py +52 -4
- cribl_control_plane/models/pipelinefunctionaggregatemetrics.py +195 -0
- cribl_control_plane/models/pipelinefunctionaggregation.py +159 -0
- cribl_control_plane/models/pipelinefunctionautotimestamp.py +56 -0
- cribl_control_plane/models/pipelinefunctioncef.py +96 -0
- cribl_control_plane/models/pipelinefunctionchain.py +62 -0
- cribl_control_plane/models/pipelinefunctionclone.py +56 -0
- cribl_control_plane/models/pipelinefunctioncode.py +56 -0
- cribl_control_plane/models/pipelinefunctioncomment.py +56 -0
- cribl_control_plane/models/pipelinefunctionconf.py +343 -46
- cribl_control_plane/models/pipelinefunctionconf_input.py +353 -0
- cribl_control_plane/models/pipelinefunctiondistinct.py +86 -0
- cribl_control_plane/models/pipelinefunctiondnslookup.py +56 -0
- cribl_control_plane/models/pipelinefunctiondrop.py +56 -0
- cribl_control_plane/models/pipelinefunctiondropdimensions.py +74 -0
- cribl_control_plane/models/pipelinefunctiondynamicsampling.py +111 -0
- cribl_control_plane/models/pipelinefunctioneval.py +56 -0
- cribl_control_plane/models/pipelinefunctioneventbreaker.py +95 -0
- cribl_control_plane/models/pipelinefunctioneventstats.py +79 -0
- cribl_control_plane/models/pipelinefunctionexternaldata.py +56 -0
- cribl_control_plane/models/pipelinefunctionflatten.py +56 -0
- cribl_control_plane/models/pipelinefunctionfoldkeys.py +56 -0
- cribl_control_plane/models/pipelinefunctiongenstats.py +56 -0
- cribl_control_plane/models/pipelinefunctiongeoip.py +109 -0
- cribl_control_plane/models/pipelinefunctiongrok.py +83 -0
- cribl_control_plane/models/pipelinefunctionhandlebar.py +99 -0
- cribl_control_plane/models/pipelinefunctionjoin.py +100 -0
- cribl_control_plane/models/pipelinefunctionjsonunroll.py +67 -0
- cribl_control_plane/models/pipelinefunctionlakeexport.py +89 -0
- cribl_control_plane/models/pipelinefunctionlimit.py +56 -0
- cribl_control_plane/models/pipelinefunctionlocalsearchdatatypeparser.py +62 -0
- cribl_control_plane/models/pipelinefunctionlocalsearchrulesetrunner.py +56 -0
- cribl_control_plane/models/pipelinefunctionlookup.py +136 -0
- cribl_control_plane/models/pipelinefunctionmask.py +108 -0
- cribl_control_plane/models/pipelinefunctionmvexpand.py +116 -0
- cribl_control_plane/models/pipelinefunctionmvpull.py +86 -0
- cribl_control_plane/models/pipelinefunctionnotificationpolicies.py +56 -0
- cribl_control_plane/models/pipelinefunctionnotifications.py +72 -0
- cribl_control_plane/models/pipelinefunctionnotify.py +189 -0
- cribl_control_plane/models/pipelinefunctionnumerify.py +56 -0
- cribl_control_plane/models/pipelinefunctionotlplogs.py +56 -0
- cribl_control_plane/models/pipelinefunctionotlpmetrics.py +56 -0
- cribl_control_plane/models/pipelinefunctionotlptraces.py +56 -0
- cribl_control_plane/models/pipelinefunctionpack.py +67 -0
- cribl_control_plane/models/pipelinefunctionpivot.py +72 -0
- cribl_control_plane/models/pipelinefunctionpublishmetrics.py +56 -0
- cribl_control_plane/models/pipelinefunctionredis.py +165 -0
- cribl_control_plane/models/pipelinefunctionregexextract.py +100 -0
- cribl_control_plane/models/pipelinefunctionregexfilter.py +56 -0
- cribl_control_plane/models/pipelinefunctionrename.py +56 -0
- cribl_control_plane/models/pipelinefunctionrollupmetrics.py +56 -0
- cribl_control_plane/models/pipelinefunctionsampling.py +56 -0
- cribl_control_plane/models/pipelinefunctionsend.py +128 -0
- cribl_control_plane/models/pipelinefunctionsensitivedatascanner.py +120 -0
- cribl_control_plane/models/pipelinefunctionserde.py +149 -0
- cribl_control_plane/models/pipelinefunctionserialize.py +122 -0
- cribl_control_plane/models/pipelinefunctionsidlookup.py +56 -0
- cribl_control_plane/models/pipelinefunctionsnmptrapserialize.py +56 -0
- cribl_control_plane/models/pipelinefunctionsort.py +84 -0
- cribl_control_plane/models/pipelinefunctionstore.py +120 -0
- cribl_control_plane/models/pipelinefunctionsuppress.py +102 -0
- cribl_control_plane/models/pipelinefunctiontee.py +77 -0
- cribl_control_plane/models/pipelinefunctiontrimtimestamp.py +56 -0
- cribl_control_plane/models/pipelinefunctionunion.py +67 -0
- cribl_control_plane/models/pipelinefunctionunroll.py +67 -0
- cribl_control_plane/models/pipelinefunctionwindow.py +83 -0
- cribl_control_plane/models/pipelinefunctionxmlunroll.py +79 -0
- cribl_control_plane/models/runnablejobcollection.py +11 -10
- cribl_control_plane/models/runnablejobexecutor.py +8 -8
- cribl_control_plane/models/savedjob.py +26 -0
- cribl_control_plane/models/savedjobcollection.py +411 -0
- cribl_control_plane/models/savedjobexecutor.py +301 -0
- cribl_control_plane/models/savedjobscheduledsearch.py +278 -0
- cribl_control_plane/models/updatepipelinebyidop.py +4 -3
- cribl_control_plane/models/updatesavedjobbyidop.py +42 -0
- cribl_control_plane/pipelines.py +16 -16
- cribl_control_plane/sdk.py +4 -0
- {cribl_control_plane-0.4.0b23.dist-info → cribl_control_plane-0.5.0b3.dist-info}/METADATA +10 -2
- {cribl_control_plane-0.4.0b23.dist-info → cribl_control_plane-0.5.0b3.dist-info}/RECORD +229 -88
- {cribl_control_plane-0.4.0b23.dist-info → cribl_control_plane-0.5.0b3.dist-info}/WHEEL +0 -0
- {cribl_control_plane-0.4.0b23.dist-info → cribl_control_plane-0.5.0b3.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from cribl_control_plane import models, utils
|
|
5
|
+
from cribl_control_plane.types import BaseModel
|
|
6
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
7
|
+
from enum import Enum
|
|
8
|
+
import pydantic
|
|
9
|
+
from pydantic import field_serializer
|
|
10
|
+
from pydantic.functional_validators import PlainValidator
|
|
11
|
+
from typing import List, Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class FunctionConfSchemaRedisCommandTypedDict(TypedDict):
|
|
16
|
+
command: str
|
|
17
|
+
r"""Redis command to perform. For a complete list visit: https://redis.io/commands"""
|
|
18
|
+
key_expr: str
|
|
19
|
+
r"""A JavaScript expression to compute the value of the key to operate on. Can also be a constant such as 'username'."""
|
|
20
|
+
out_field: NotRequired[str]
|
|
21
|
+
r"""Name of the field in which to store the returned value. Leave blank to discard returned value."""
|
|
22
|
+
args_expr: NotRequired[str]
|
|
23
|
+
r"""A JavaScript expression to compute arguments to the operation. Can return an array."""
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class FunctionConfSchemaRedisCommand(BaseModel):
|
|
27
|
+
command: str
|
|
28
|
+
r"""Redis command to perform. For a complete list visit: https://redis.io/commands"""
|
|
29
|
+
|
|
30
|
+
key_expr: Annotated[str, pydantic.Field(alias="keyExpr")]
|
|
31
|
+
r"""A JavaScript expression to compute the value of the key to operate on. Can also be a constant such as 'username'."""
|
|
32
|
+
|
|
33
|
+
out_field: Annotated[Optional[str], pydantic.Field(alias="outField")] = None
|
|
34
|
+
r"""Name of the field in which to store the returned value. Leave blank to discard returned value."""
|
|
35
|
+
|
|
36
|
+
args_expr: Annotated[Optional[str], pydantic.Field(alias="argsExpr")] = None
|
|
37
|
+
r"""A JavaScript expression to compute arguments to the operation. Can return an array."""
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class FunctionConfSchemaRedisDeploymentType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
41
|
+
r"""How the Redis server is configured. Defaults to Standalone"""
|
|
42
|
+
|
|
43
|
+
# Standalone
|
|
44
|
+
STANDALONE = "standalone"
|
|
45
|
+
# Cluster
|
|
46
|
+
CLUSTER = "cluster"
|
|
47
|
+
# Sentinel
|
|
48
|
+
SENTINEL = "sentinel"
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class FunctionConfSchemaRedisAuthenticationMethod(
|
|
52
|
+
str, Enum, metaclass=utils.OpenEnumMeta
|
|
53
|
+
):
|
|
54
|
+
# None
|
|
55
|
+
NONE = "none"
|
|
56
|
+
# Manual
|
|
57
|
+
MANUAL = "manual"
|
|
58
|
+
# User Secret
|
|
59
|
+
CREDENTIALS_SECRET = "credentialsSecret"
|
|
60
|
+
# Admin Secret
|
|
61
|
+
TEXT_SECRET = "textSecret"
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class FunctionConfSchemaRedisTypedDict(TypedDict):
|
|
65
|
+
commands: NotRequired[List[FunctionConfSchemaRedisCommandTypedDict]]
|
|
66
|
+
deployment_type: NotRequired[FunctionConfSchemaRedisDeploymentType]
|
|
67
|
+
r"""How the Redis server is configured. Defaults to Standalone"""
|
|
68
|
+
auth_type: NotRequired[FunctionConfSchemaRedisAuthenticationMethod]
|
|
69
|
+
max_block_secs: NotRequired[float]
|
|
70
|
+
r"""Maximum amount of time (seconds) to wait before assuming that Redis is down and passing events through. Use 0 to disable."""
|
|
71
|
+
enable_client_side_caching: NotRequired[bool]
|
|
72
|
+
r"""Enable client-side cache. Redundant when using Redis write operations. See more options at Settings > General > Limits > Redis Cache."""
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class FunctionConfSchemaRedis(BaseModel):
|
|
76
|
+
commands: Optional[List[FunctionConfSchemaRedisCommand]] = None
|
|
77
|
+
|
|
78
|
+
deployment_type: Annotated[
|
|
79
|
+
Annotated[
|
|
80
|
+
Optional[FunctionConfSchemaRedisDeploymentType],
|
|
81
|
+
PlainValidator(validate_open_enum(False)),
|
|
82
|
+
],
|
|
83
|
+
pydantic.Field(alias="deploymentType"),
|
|
84
|
+
] = FunctionConfSchemaRedisDeploymentType.STANDALONE
|
|
85
|
+
r"""How the Redis server is configured. Defaults to Standalone"""
|
|
86
|
+
|
|
87
|
+
auth_type: Annotated[
|
|
88
|
+
Annotated[
|
|
89
|
+
Optional[FunctionConfSchemaRedisAuthenticationMethod],
|
|
90
|
+
PlainValidator(validate_open_enum(False)),
|
|
91
|
+
],
|
|
92
|
+
pydantic.Field(alias="authType"),
|
|
93
|
+
] = FunctionConfSchemaRedisAuthenticationMethod.NONE
|
|
94
|
+
|
|
95
|
+
max_block_secs: Annotated[Optional[float], pydantic.Field(alias="maxBlockSecs")] = (
|
|
96
|
+
60
|
|
97
|
+
)
|
|
98
|
+
r"""Maximum amount of time (seconds) to wait before assuming that Redis is down and passing events through. Use 0 to disable."""
|
|
99
|
+
|
|
100
|
+
enable_client_side_caching: Annotated[
|
|
101
|
+
Optional[bool], pydantic.Field(alias="enableClientSideCaching")
|
|
102
|
+
] = None
|
|
103
|
+
r"""Enable client-side cache. Redundant when using Redis write operations. See more options at Settings > General > Limits > Redis Cache."""
|
|
104
|
+
|
|
105
|
+
@field_serializer("deployment_type")
|
|
106
|
+
def serialize_deployment_type(self, value):
|
|
107
|
+
if isinstance(value, str):
|
|
108
|
+
try:
|
|
109
|
+
return models.FunctionConfSchemaRedisDeploymentType(value)
|
|
110
|
+
except ValueError:
|
|
111
|
+
return value
|
|
112
|
+
return value
|
|
113
|
+
|
|
114
|
+
@field_serializer("auth_type")
|
|
115
|
+
def serialize_auth_type(self, value):
|
|
116
|
+
if isinstance(value, str):
|
|
117
|
+
try:
|
|
118
|
+
return models.FunctionConfSchemaRedisAuthenticationMethod(value)
|
|
119
|
+
except ValueError:
|
|
120
|
+
return value
|
|
121
|
+
return value
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from cribl_control_plane.types import BaseModel
|
|
5
|
+
import pydantic
|
|
6
|
+
from typing import List, Optional
|
|
7
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class FunctionConfSchemaRegexExtractRegexListTypedDict(TypedDict):
|
|
11
|
+
regex: str
|
|
12
|
+
r"""Regex literal with named capturing groups, such as (?<foo>bar), or _NAME_ and _VALUE_ capturing groups, such as (?<_NAME_0>[^ =]+)=(?<_VALUE_0>[^,]+)"""
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class FunctionConfSchemaRegexExtractRegexList(BaseModel):
|
|
16
|
+
regex: str
|
|
17
|
+
r"""Regex literal with named capturing groups, such as (?<foo>bar), or _NAME_ and _VALUE_ capturing groups, such as (?<_NAME_0>[^ =]+)=(?<_VALUE_0>[^,]+)"""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class FunctionConfSchemaRegexExtractTypedDict(TypedDict):
|
|
21
|
+
regex: NotRequired[str]
|
|
22
|
+
r"""Regex literal with named capturing groups, such as (?<foo>bar), or _NAME_ and _VALUE_ capturing groups, such as (?<_NAME_0>[^ =]+)=(?<_VALUE_0>[^,]+)"""
|
|
23
|
+
regex_list: NotRequired[List[FunctionConfSchemaRegexExtractRegexListTypedDict]]
|
|
24
|
+
source: NotRequired[str]
|
|
25
|
+
r"""Field on which to perform regex field extraction"""
|
|
26
|
+
iterations: NotRequired[float]
|
|
27
|
+
r"""The maximum number of times to apply regex to source field when the global flag is set, or when using _NAME_ and _VALUE_ capturing groups"""
|
|
28
|
+
field_name_expression: NotRequired[str]
|
|
29
|
+
r"""JavaScript expression to format field names when _NAME_n and _VALUE_n capturing groups are used. Original field name is in global variable 'name'. Example: To append XX to all field names, use `${name}_XX` (backticks are literal). If empty, names will be sanitized using this regex: /^[_0-9]+|[^a-zA-Z0-9_]+/g. You can access other fields values via __e.<fieldName>."""
|
|
30
|
+
overwrite: NotRequired[bool]
|
|
31
|
+
r"""Overwrite existing event fields with extracted values. If disabled, existing fields will be converted to an array."""
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class FunctionConfSchemaRegexExtract(BaseModel):
|
|
35
|
+
regex: Optional[str] = None
|
|
36
|
+
r"""Regex literal with named capturing groups, such as (?<foo>bar), or _NAME_ and _VALUE_ capturing groups, such as (?<_NAME_0>[^ =]+)=(?<_VALUE_0>[^,]+)"""
|
|
37
|
+
|
|
38
|
+
regex_list: Annotated[
|
|
39
|
+
Optional[List[FunctionConfSchemaRegexExtractRegexList]],
|
|
40
|
+
pydantic.Field(alias="regexList"),
|
|
41
|
+
] = None
|
|
42
|
+
|
|
43
|
+
source: Optional[str] = "_raw"
|
|
44
|
+
r"""Field on which to perform regex field extraction"""
|
|
45
|
+
|
|
46
|
+
iterations: Optional[float] = 100
|
|
47
|
+
r"""The maximum number of times to apply regex to source field when the global flag is set, or when using _NAME_ and _VALUE_ capturing groups"""
|
|
48
|
+
|
|
49
|
+
field_name_expression: Annotated[
|
|
50
|
+
Optional[str], pydantic.Field(alias="fieldNameExpression")
|
|
51
|
+
] = None
|
|
52
|
+
r"""JavaScript expression to format field names when _NAME_n and _VALUE_n capturing groups are used. Original field name is in global variable 'name'. Example: To append XX to all field names, use `${name}_XX` (backticks are literal). If empty, names will be sanitized using this regex: /^[_0-9]+|[^a-zA-Z0-9_]+/g. You can access other fields values via __e.<fieldName>."""
|
|
53
|
+
|
|
54
|
+
overwrite: Optional[bool] = False
|
|
55
|
+
r"""Overwrite existing event fields with extracted values. If disabled, existing fields will be converted to an array."""
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from cribl_control_plane.types import BaseModel
|
|
5
|
+
import pydantic
|
|
6
|
+
from typing import List, Optional
|
|
7
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class FunctionConfSchemaRegexFilterRegexListTypedDict(TypedDict):
|
|
11
|
+
regex: str
|
|
12
|
+
r"""Regex to test against"""
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class FunctionConfSchemaRegexFilterRegexList(BaseModel):
|
|
16
|
+
regex: str
|
|
17
|
+
r"""Regex to test against"""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class FunctionConfSchemaRegexFilterTypedDict(TypedDict):
|
|
21
|
+
regex: NotRequired[str]
|
|
22
|
+
r"""Regex to test against"""
|
|
23
|
+
regex_list: NotRequired[List[FunctionConfSchemaRegexFilterRegexListTypedDict]]
|
|
24
|
+
field: NotRequired[str]
|
|
25
|
+
r"""Name of the field to apply the regex on (defaults to _raw)"""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class FunctionConfSchemaRegexFilter(BaseModel):
|
|
29
|
+
regex: Optional[str] = None
|
|
30
|
+
r"""Regex to test against"""
|
|
31
|
+
|
|
32
|
+
regex_list: Annotated[
|
|
33
|
+
Optional[List[FunctionConfSchemaRegexFilterRegexList]],
|
|
34
|
+
pydantic.Field(alias="regexList"),
|
|
35
|
+
] = None
|
|
36
|
+
|
|
37
|
+
field: Optional[str] = "_raw"
|
|
38
|
+
r"""Name of the field to apply the regex on (defaults to _raw)"""
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from cribl_control_plane.types import BaseModel
|
|
5
|
+
import pydantic
|
|
6
|
+
from typing import List, Optional
|
|
7
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class RenameTypedDict(TypedDict):
|
|
11
|
+
current_name: str
|
|
12
|
+
r"""Name of the field to rename. Literal identifiers must be quoted."""
|
|
13
|
+
new_name: str
|
|
14
|
+
r"""The name the field will be renamed to. Literal identifiers must be quoted."""
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class Rename(BaseModel):
|
|
18
|
+
current_name: Annotated[str, pydantic.Field(alias="currentName")]
|
|
19
|
+
r"""Name of the field to rename. Literal identifiers must be quoted."""
|
|
20
|
+
|
|
21
|
+
new_name: Annotated[str, pydantic.Field(alias="newName")]
|
|
22
|
+
r"""The name the field will be renamed to. Literal identifiers must be quoted."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class FunctionConfSchemaRenameTypedDict(TypedDict):
|
|
26
|
+
base_fields: NotRequired[List[str]]
|
|
27
|
+
r"""Fields whose children will inherit the Rename fields and Rename expression operations. Supports wildcards. If empty, only top-level fields will be renamed."""
|
|
28
|
+
rename: NotRequired[List[RenameTypedDict]]
|
|
29
|
+
r"""Set of key-value pairs to rename fields, where key is the current name and value is the new name. Does not support internal fields."""
|
|
30
|
+
rename_expr: NotRequired[str]
|
|
31
|
+
r"""Optional JavaScript expression whose returned value will be used to rename fields. Use the 'name' and 'value' global variables to access field names/values. Example: `name.startsWith('data') ? name.toUpperCase() : name`. You can access other field values via __e.<fieldName>."""
|
|
32
|
+
wildcard_depth: NotRequired[int]
|
|
33
|
+
r"""For wildcards specified in Parent fields, sets the maximum depth within events to match and rename fields. Enter `0` to match only top-level fields. Defaults to `5` levels down."""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class FunctionConfSchemaRename(BaseModel):
|
|
37
|
+
base_fields: Annotated[Optional[List[str]], pydantic.Field(alias="baseFields")] = (
|
|
38
|
+
None
|
|
39
|
+
)
|
|
40
|
+
r"""Fields whose children will inherit the Rename fields and Rename expression operations. Supports wildcards. If empty, only top-level fields will be renamed."""
|
|
41
|
+
|
|
42
|
+
rename: Optional[List[Rename]] = None
|
|
43
|
+
r"""Set of key-value pairs to rename fields, where key is the current name and value is the new name. Does not support internal fields."""
|
|
44
|
+
|
|
45
|
+
rename_expr: Annotated[Optional[str], pydantic.Field(alias="renameExpr")] = None
|
|
46
|
+
r"""Optional JavaScript expression whose returned value will be used to rename fields. Use the 'name' and 'value' global variables to access field names/values. Example: `name.startsWith('data') ? name.toUpperCase() : name`. You can access other field values via __e.<fieldName>."""
|
|
47
|
+
|
|
48
|
+
wildcard_depth: Annotated[Optional[int], pydantic.Field(alias="wildcardDepth")] = 5
|
|
49
|
+
r"""For wildcards specified in Parent fields, sets the maximum depth within events to match and rename fields. Enter `0` to match only top-level fields. Defaults to `5` levels down."""
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from cribl_control_plane import models, utils
|
|
5
|
+
from cribl_control_plane.types import BaseModel
|
|
6
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
7
|
+
from enum import Enum
|
|
8
|
+
import pydantic
|
|
9
|
+
from pydantic import field_serializer
|
|
10
|
+
from pydantic.functional_validators import PlainValidator
|
|
11
|
+
from typing import List, Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GaugeUpdate(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
16
|
+
r"""The operation to use when rolling up gauge metrics. Defaults to last."""
|
|
17
|
+
|
|
18
|
+
# Last
|
|
19
|
+
LAST = "last"
|
|
20
|
+
# Maximum
|
|
21
|
+
MAX = "max"
|
|
22
|
+
# Minimum
|
|
23
|
+
MIN = "min"
|
|
24
|
+
# Average
|
|
25
|
+
AVG = "avg"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class FunctionConfSchemaRollupMetricsTypedDict(TypedDict):
|
|
29
|
+
dimensions: NotRequired[List[str]]
|
|
30
|
+
r"""List of dimensions across which to perform rollups. Supports wildcards. Defaults to all original dimensions."""
|
|
31
|
+
time_window: NotRequired[str]
|
|
32
|
+
r"""The time span of the rollup window. Must be a valid time string (such as 10s)."""
|
|
33
|
+
gauge_rollup: NotRequired[GaugeUpdate]
|
|
34
|
+
r"""The operation to use when rolling up gauge metrics. Defaults to last."""
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class FunctionConfSchemaRollupMetrics(BaseModel):
|
|
38
|
+
dimensions: Optional[List[str]] = None
|
|
39
|
+
r"""List of dimensions across which to perform rollups. Supports wildcards. Defaults to all original dimensions."""
|
|
40
|
+
|
|
41
|
+
time_window: Annotated[Optional[str], pydantic.Field(alias="timeWindow")] = "30s"
|
|
42
|
+
r"""The time span of the rollup window. Must be a valid time string (such as 10s)."""
|
|
43
|
+
|
|
44
|
+
gauge_rollup: Annotated[
|
|
45
|
+
Annotated[Optional[GaugeUpdate], PlainValidator(validate_open_enum(False))],
|
|
46
|
+
pydantic.Field(alias="gaugeRollup"),
|
|
47
|
+
] = GaugeUpdate.LAST
|
|
48
|
+
r"""The operation to use when rolling up gauge metrics. Defaults to last."""
|
|
49
|
+
|
|
50
|
+
@field_serializer("gauge_rollup")
|
|
51
|
+
def serialize_gauge_rollup(self, value):
|
|
52
|
+
if isinstance(value, str):
|
|
53
|
+
try:
|
|
54
|
+
return models.GaugeUpdate(value)
|
|
55
|
+
except ValueError:
|
|
56
|
+
return value
|
|
57
|
+
return value
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from cribl_control_plane.types import BaseModel
|
|
5
|
+
import pydantic
|
|
6
|
+
from typing import List, Optional
|
|
7
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class FunctionConfSchemaSamplingRuleTypedDict(TypedDict):
|
|
11
|
+
filter_: NotRequired[str]
|
|
12
|
+
r"""JavaScript filter expression matching events to be sampled. Use true to match all."""
|
|
13
|
+
rate: NotRequired[int]
|
|
14
|
+
r"""Sampling rate; picks one out of N matching events"""
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class FunctionConfSchemaSamplingRule(BaseModel):
|
|
18
|
+
filter_: Annotated[Optional[str], pydantic.Field(alias="filter")] = "true"
|
|
19
|
+
r"""JavaScript filter expression matching events to be sampled. Use true to match all."""
|
|
20
|
+
|
|
21
|
+
rate: Optional[int] = 1
|
|
22
|
+
r"""Sampling rate; picks one out of N matching events"""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class FunctionConfSchemaSamplingTypedDict(TypedDict):
|
|
26
|
+
rules: NotRequired[List[FunctionConfSchemaSamplingRuleTypedDict]]
|
|
27
|
+
r"""Events matching these rules will be sampled at the given rate"""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class FunctionConfSchemaSampling(BaseModel):
|
|
31
|
+
rules: Optional[List[FunctionConfSchemaSamplingRule]] = None
|
|
32
|
+
r"""Events matching these rules will be sampled at the given rate"""
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from cribl_control_plane import models, utils
|
|
5
|
+
from cribl_control_plane.types import BaseModel
|
|
6
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
7
|
+
from enum import Enum
|
|
8
|
+
import pydantic
|
|
9
|
+
from pydantic import field_serializer
|
|
10
|
+
from pydantic.functional_validators import PlainValidator
|
|
11
|
+
from typing import Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class FunctionConfSchemaSendMode(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
16
|
+
r"""In Sender mode, forwards search results directly to the destination. In Metrics mode, accumulates metrics from federated send operators, and forwards the aggregate metrics."""
|
|
17
|
+
|
|
18
|
+
SENDER = "sender"
|
|
19
|
+
METRICS = "metrics"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class FunctionConfSchemaSendTypedDict(TypedDict):
|
|
23
|
+
url: NotRequired[str]
|
|
24
|
+
r"""Full URL to send search to."""
|
|
25
|
+
group: NotRequired[str]
|
|
26
|
+
r"""Group within the workspace we're sending to."""
|
|
27
|
+
workspace: NotRequired[str]
|
|
28
|
+
r"""Workspace within the deployment to send the search results to."""
|
|
29
|
+
send_url_template: NotRequired[str]
|
|
30
|
+
r"""Template to build the URL to send from."""
|
|
31
|
+
search_id: NotRequired[str]
|
|
32
|
+
r"""Id of the search this function is running on."""
|
|
33
|
+
tee: NotRequired[str]
|
|
34
|
+
r"""Tee results to search. When set to true results will be shipped instead of stats"""
|
|
35
|
+
flush_ms: NotRequired[float]
|
|
36
|
+
r"""How often are stats flushed in ms"""
|
|
37
|
+
suppress_previews: NotRequired[bool]
|
|
38
|
+
r"""Disables generation of intermediate stats. When true stats will be emitted only on end"""
|
|
39
|
+
mode: NotRequired[FunctionConfSchemaSendMode]
|
|
40
|
+
r"""In Sender mode, forwards search results directly to the destination. In Metrics mode, accumulates metrics from federated send operators, and forwards the aggregate metrics."""
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class FunctionConfSchemaSend(BaseModel):
|
|
44
|
+
url: Optional[str] = None
|
|
45
|
+
r"""Full URL to send search to."""
|
|
46
|
+
|
|
47
|
+
group: Optional[str] = "default"
|
|
48
|
+
r"""Group within the workspace we're sending to."""
|
|
49
|
+
|
|
50
|
+
workspace: Optional[str] = "main"
|
|
51
|
+
r"""Workspace within the deployment to send the search results to."""
|
|
52
|
+
|
|
53
|
+
send_url_template: Annotated[
|
|
54
|
+
Optional[str], pydantic.Field(alias="sendUrlTemplate")
|
|
55
|
+
] = None
|
|
56
|
+
r"""Template to build the URL to send from."""
|
|
57
|
+
|
|
58
|
+
search_id: Annotated[Optional[str], pydantic.Field(alias="searchId")] = None
|
|
59
|
+
r"""Id of the search this function is running on."""
|
|
60
|
+
|
|
61
|
+
tee: Optional[str] = "false"
|
|
62
|
+
r"""Tee results to search. When set to true results will be shipped instead of stats"""
|
|
63
|
+
|
|
64
|
+
flush_ms: Annotated[Optional[float], pydantic.Field(alias="flushMs")] = 1000
|
|
65
|
+
r"""How often are stats flushed in ms"""
|
|
66
|
+
|
|
67
|
+
suppress_previews: Annotated[
|
|
68
|
+
Optional[bool], pydantic.Field(alias="suppressPreviews")
|
|
69
|
+
] = None
|
|
70
|
+
r"""Disables generation of intermediate stats. When true stats will be emitted only on end"""
|
|
71
|
+
|
|
72
|
+
mode: Annotated[
|
|
73
|
+
Optional[FunctionConfSchemaSendMode], PlainValidator(validate_open_enum(False))
|
|
74
|
+
] = None
|
|
75
|
+
r"""In Sender mode, forwards search results directly to the destination. In Metrics mode, accumulates metrics from federated send operators, and forwards the aggregate metrics."""
|
|
76
|
+
|
|
77
|
+
@field_serializer("mode")
|
|
78
|
+
def serialize_mode(self, value):
|
|
79
|
+
if isinstance(value, str):
|
|
80
|
+
try:
|
|
81
|
+
return models.FunctionConfSchemaSendMode(value)
|
|
82
|
+
except ValueError:
|
|
83
|
+
return value
|
|
84
|
+
return value
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from cribl_control_plane.types import BaseModel
|
|
5
|
+
import pydantic
|
|
6
|
+
from typing import List, Optional
|
|
7
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class FunctionConfSchemaSensitiveDataScannerRuleTypedDict(TypedDict):
|
|
11
|
+
ruleset_id: str
|
|
12
|
+
r"""The ID of the ruleset to use for the scan"""
|
|
13
|
+
replace_expr: NotRequired[str]
|
|
14
|
+
r"""A JavaScript expression or literal to replace the matching content. Capturing groups can be referenced as g1, g2, and so on, and event fields as event.<fieldName>."""
|
|
15
|
+
disabled: NotRequired[bool]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class FunctionConfSchemaSensitiveDataScannerRule(BaseModel):
|
|
19
|
+
ruleset_id: Annotated[str, pydantic.Field(alias="rulesetId")]
|
|
20
|
+
r"""The ID of the ruleset to use for the scan"""
|
|
21
|
+
|
|
22
|
+
replace_expr: Annotated[Optional[str], pydantic.Field(alias="replaceExpr")] = (
|
|
23
|
+
"'REDACTED'"
|
|
24
|
+
)
|
|
25
|
+
r"""A JavaScript expression or literal to replace the matching content. Capturing groups can be referenced as g1, g2, and so on, and event fields as event.<fieldName>."""
|
|
26
|
+
|
|
27
|
+
disabled: Optional[bool] = False
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class FunctionConfSchemaSensitiveDataScannerFlagTypedDict(TypedDict):
|
|
31
|
+
value: str
|
|
32
|
+
name: NotRequired[str]
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class FunctionConfSchemaSensitiveDataScannerFlag(BaseModel):
|
|
36
|
+
value: str
|
|
37
|
+
|
|
38
|
+
name: Optional[str] = None
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class FunctionConfSchemaSensitiveDataScannerTypedDict(TypedDict):
|
|
42
|
+
rules: NotRequired[List[FunctionConfSchemaSensitiveDataScannerRuleTypedDict]]
|
|
43
|
+
fields: NotRequired[List[str]]
|
|
44
|
+
r"""Rulesets act on the events contained in these fields. Mitigation expressions apply to the scan results. Supports wildcards (*)."""
|
|
45
|
+
exclude_fields: NotRequired[List[str]]
|
|
46
|
+
r"""Fields that the mitigation expression will not be applied to. Supports wildcards (*)."""
|
|
47
|
+
flags: NotRequired[List[FunctionConfSchemaSensitiveDataScannerFlagTypedDict]]
|
|
48
|
+
r"""Fields to add when mitigation is applied to an event"""
|
|
49
|
+
include_detected_rules: NotRequired[bool]
|
|
50
|
+
r"""Add matching ruleset IDs to a field called \"__detected\" """
|
|
51
|
+
background_detection: NotRequired[bool]
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class FunctionConfSchemaSensitiveDataScanner(BaseModel):
|
|
55
|
+
rules: Optional[List[FunctionConfSchemaSensitiveDataScannerRule]] = None
|
|
56
|
+
|
|
57
|
+
fields: Optional[List[str]] = None
|
|
58
|
+
r"""Rulesets act on the events contained in these fields. Mitigation expressions apply to the scan results. Supports wildcards (*)."""
|
|
59
|
+
|
|
60
|
+
exclude_fields: Annotated[
|
|
61
|
+
Optional[List[str]], pydantic.Field(alias="excludeFields")
|
|
62
|
+
] = None
|
|
63
|
+
r"""Fields that the mitigation expression will not be applied to. Supports wildcards (*)."""
|
|
64
|
+
|
|
65
|
+
flags: Optional[List[FunctionConfSchemaSensitiveDataScannerFlag]] = None
|
|
66
|
+
r"""Fields to add when mitigation is applied to an event"""
|
|
67
|
+
|
|
68
|
+
include_detected_rules: Annotated[
|
|
69
|
+
Optional[bool], pydantic.Field(alias="includeDetectedRules")
|
|
70
|
+
] = True
|
|
71
|
+
r"""Add matching ruleset IDs to a field called \"__detected\" """
|
|
72
|
+
|
|
73
|
+
background_detection: Annotated[
|
|
74
|
+
Optional[bool], pydantic.Field(alias="backgroundDetection")
|
|
75
|
+
] = False
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from cribl_control_plane import models, utils
|
|
5
|
+
from cribl_control_plane.types import BaseModel
|
|
6
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
7
|
+
from enum import Enum
|
|
8
|
+
import pydantic
|
|
9
|
+
from pydantic import field_serializer
|
|
10
|
+
from pydantic.functional_validators import PlainValidator
|
|
11
|
+
from typing import Any, Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class FunctionConfSchemaSerdeOperationMode(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
16
|
+
r"""Extract creates new fields. Reserialize extracts and filters fields, and then reserializes."""
|
|
17
|
+
|
|
18
|
+
# Extract
|
|
19
|
+
EXTRACT = "extract"
|
|
20
|
+
# Reserialize
|
|
21
|
+
RESERIALIZE = "reserialize"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class FunctionConfSchemaSerdeType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
25
|
+
r"""Parser or formatter type to use"""
|
|
26
|
+
|
|
27
|
+
# CSV
|
|
28
|
+
CSV = "csv"
|
|
29
|
+
# Extended Log File Format
|
|
30
|
+
ELFF = "elff"
|
|
31
|
+
# Common Log Format
|
|
32
|
+
CLF = "clf"
|
|
33
|
+
# Key=Value Pairs
|
|
34
|
+
KVP = "kvp"
|
|
35
|
+
# JSON Object
|
|
36
|
+
JSON = "json"
|
|
37
|
+
# Delimited values
|
|
38
|
+
DELIM = "delim"
|
|
39
|
+
# Regular Expression
|
|
40
|
+
REGEX = "regex"
|
|
41
|
+
# Grok
|
|
42
|
+
GROK = "grok"
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class FunctionConfSchemaSerdeTypedDict(TypedDict):
|
|
46
|
+
mode: NotRequired[FunctionConfSchemaSerdeOperationMode]
|
|
47
|
+
r"""Extract creates new fields. Reserialize extracts and filters fields, and then reserializes."""
|
|
48
|
+
type: NotRequired[FunctionConfSchemaSerdeType]
|
|
49
|
+
r"""Parser or formatter type to use"""
|
|
50
|
+
delim_char: NotRequired[Any]
|
|
51
|
+
quote_char: NotRequired[Any]
|
|
52
|
+
escape_char: NotRequired[Any]
|
|
53
|
+
null_value: NotRequired[Any]
|
|
54
|
+
src_field: NotRequired[str]
|
|
55
|
+
r"""Field containing text to be parsed"""
|
|
56
|
+
dst_field: NotRequired[str]
|
|
57
|
+
r"""Name of the field to add fields to. Extract mode only."""
|
|
58
|
+
clean_fields: NotRequired[Any]
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class FunctionConfSchemaSerde(BaseModel):
|
|
62
|
+
mode: Annotated[
|
|
63
|
+
Optional[FunctionConfSchemaSerdeOperationMode],
|
|
64
|
+
PlainValidator(validate_open_enum(False)),
|
|
65
|
+
] = FunctionConfSchemaSerdeOperationMode.EXTRACT
|
|
66
|
+
r"""Extract creates new fields. Reserialize extracts and filters fields, and then reserializes."""
|
|
67
|
+
|
|
68
|
+
type: Annotated[
|
|
69
|
+
Optional[FunctionConfSchemaSerdeType], PlainValidator(validate_open_enum(False))
|
|
70
|
+
] = FunctionConfSchemaSerdeType.CSV
|
|
71
|
+
r"""Parser or formatter type to use"""
|
|
72
|
+
|
|
73
|
+
delim_char: Annotated[Optional[Any], pydantic.Field(alias="delimChar")] = None
|
|
74
|
+
|
|
75
|
+
quote_char: Annotated[Optional[Any], pydantic.Field(alias="quoteChar")] = None
|
|
76
|
+
|
|
77
|
+
escape_char: Annotated[Optional[Any], pydantic.Field(alias="escapeChar")] = None
|
|
78
|
+
|
|
79
|
+
null_value: Annotated[Optional[Any], pydantic.Field(alias="nullValue")] = None
|
|
80
|
+
|
|
81
|
+
src_field: Annotated[Optional[str], pydantic.Field(alias="srcField")] = "_raw"
|
|
82
|
+
r"""Field containing text to be parsed"""
|
|
83
|
+
|
|
84
|
+
dst_field: Annotated[Optional[str], pydantic.Field(alias="dstField")] = None
|
|
85
|
+
r"""Name of the field to add fields to. Extract mode only."""
|
|
86
|
+
|
|
87
|
+
clean_fields: Annotated[Optional[Any], pydantic.Field(alias="cleanFields")] = None
|
|
88
|
+
|
|
89
|
+
@field_serializer("mode")
|
|
90
|
+
def serialize_mode(self, value):
|
|
91
|
+
if isinstance(value, str):
|
|
92
|
+
try:
|
|
93
|
+
return models.FunctionConfSchemaSerdeOperationMode(value)
|
|
94
|
+
except ValueError:
|
|
95
|
+
return value
|
|
96
|
+
return value
|
|
97
|
+
|
|
98
|
+
@field_serializer("type")
|
|
99
|
+
def serialize_type(self, value):
|
|
100
|
+
if isinstance(value, str):
|
|
101
|
+
try:
|
|
102
|
+
return models.FunctionConfSchemaSerdeType(value)
|
|
103
|
+
except ValueError:
|
|
104
|
+
return value
|
|
105
|
+
return value
|