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.
Files changed (229) hide show
  1. cribl_control_plane/_version.py +3 -3
  2. cribl_control_plane/collectors_sdk.py +993 -0
  3. cribl_control_plane/models/__init__.py +2161 -734
  4. cribl_control_plane/models/configgroup.py +3 -0
  5. cribl_control_plane/models/countedsavedjob.py +20 -0
  6. cribl_control_plane/models/createsavedjobop.py +30 -0
  7. cribl_control_plane/models/deletesavedjobbyidop.py +42 -0
  8. cribl_control_plane/models/functionaggregatemetrics.py +7 -144
  9. cribl_control_plane/models/functionaggregation.py +7 -110
  10. cribl_control_plane/models/functionautotimestamp.py +7 -111
  11. cribl_control_plane/models/functioncef.py +6 -51
  12. cribl_control_plane/models/functionchain.py +6 -12
  13. cribl_control_plane/models/functionclone.py +7 -13
  14. cribl_control_plane/models/functioncode.py +8 -35
  15. cribl_control_plane/models/functioncomment.py +6 -12
  16. cribl_control_plane/models/functionconfschemaaggregatemetrics.py +153 -0
  17. cribl_control_plane/models/functionconfschemaaggregation.py +114 -0
  18. cribl_control_plane/models/functionconfschemaautotimestamp.py +116 -0
  19. cribl_control_plane/models/functionconfschemacef.py +83 -0
  20. cribl_control_plane/models/functionconfschemachain.py +16 -0
  21. cribl_control_plane/models/functionconfschemaclone.py +16 -0
  22. cribl_control_plane/models/functionconfschemacode.py +38 -0
  23. cribl_control_plane/models/functionconfschemacomment.py +16 -0
  24. cribl_control_plane/models/functionconfschemadistinct.py +41 -0
  25. cribl_control_plane/models/functionconfschemadnslookup.py +193 -0
  26. cribl_control_plane/models/functionconfschemadrop.py +13 -0
  27. cribl_control_plane/models/functionconfschemadropdimensions.py +31 -0
  28. cribl_control_plane/models/functionconfschemadynamicsampling.py +67 -0
  29. cribl_control_plane/models/functionconfschemaeval.py +44 -0
  30. cribl_control_plane/models/functionconfschemaeventbreaker.py +51 -0
  31. cribl_control_plane/models/functionconfschemaeventstats.py +34 -0
  32. cribl_control_plane/models/functionconfschemaexternaldata.py +13 -0
  33. cribl_control_plane/models/functionconfschemaflatten.py +31 -0
  34. cribl_control_plane/models/functionconfschemafoldkeys.py +31 -0
  35. cribl_control_plane/models/functionconfschemagenstats.py +14 -0
  36. cribl_control_plane/models/functionconfschemageoip.py +66 -0
  37. cribl_control_plane/models/functionconfschemagrok.py +38 -0
  38. cribl_control_plane/models/functionconfschemahandlebar.py +56 -0
  39. cribl_control_plane/models/functionconfschemajoin.py +55 -0
  40. cribl_control_plane/models/functionconfschemajsonunroll.py +21 -0
  41. cribl_control_plane/models/functionconfschemalakeexport.py +44 -0
  42. cribl_control_plane/models/functionconfschemalimit.py +16 -0
  43. cribl_control_plane/models/functionconfschemalocalsearchdatatypeparser.py +17 -0
  44. cribl_control_plane/models/functionconfschemalocalsearchrulesetrunner.py +40 -0
  45. cribl_control_plane/models/functionconfschemalookup.py +92 -0
  46. cribl_control_plane/models/functionconfschemamask.py +63 -0
  47. cribl_control_plane/models/functionconfschemamvexpand.py +76 -0
  48. cribl_control_plane/models/functionconfschemamvpull.py +45 -0
  49. cribl_control_plane/models/functionconfschemanotificationpolicies.py +129 -0
  50. cribl_control_plane/models/functionconfschemanotifications.py +26 -0
  51. cribl_control_plane/models/functionconfschemanotify.py +149 -0
  52. cribl_control_plane/models/functionconfschemanumerify.py +63 -0
  53. cribl_control_plane/models/functionconfschemaotlplogs.py +24 -0
  54. cribl_control_plane/models/functionconfschemaotlpmetrics.py +61 -0
  55. cribl_control_plane/models/functionconfschemaotlptraces.py +54 -0
  56. cribl_control_plane/models/functionconfschemapack.py +24 -0
  57. cribl_control_plane/models/functionconfschemapivot.py +31 -0
  58. cribl_control_plane/models/functionconfschemapublishmetrics.py +98 -0
  59. cribl_control_plane/models/functionconfschemaredis.py +121 -0
  60. cribl_control_plane/models/functionconfschemaregexextract.py +55 -0
  61. cribl_control_plane/models/functionconfschemaregexfilter.py +38 -0
  62. cribl_control_plane/models/functionconfschemarename.py +49 -0
  63. cribl_control_plane/models/functionconfschemarollupmetrics.py +57 -0
  64. cribl_control_plane/models/functionconfschemasampling.py +32 -0
  65. cribl_control_plane/models/functionconfschemasend.py +84 -0
  66. cribl_control_plane/models/functionconfschemasensitivedatascanner.py +75 -0
  67. cribl_control_plane/models/functionconfschemaserde.py +105 -0
  68. cribl_control_plane/models/functionconfschemaserialize.py +78 -0
  69. cribl_control_plane/models/functionconfschemasidlookup.py +34 -0
  70. cribl_control_plane/models/functionconfschemasnmptrapserialize.py +92 -0
  71. cribl_control_plane/models/functionconfschemasort.py +41 -0
  72. cribl_control_plane/models/functionconfschemastore.py +75 -0
  73. cribl_control_plane/models/functionconfschemasuppress.py +57 -0
  74. cribl_control_plane/models/functionconfschematee.py +32 -0
  75. cribl_control_plane/models/functionconfschematrimtimestamp.py +16 -0
  76. cribl_control_plane/models/functionconfschemaunion.py +22 -0
  77. cribl_control_plane/models/functionconfschemaunroll.py +22 -0
  78. cribl_control_plane/models/functionconfschemawindow.py +40 -0
  79. cribl_control_plane/models/functionconfschemaxmlunroll.py +34 -0
  80. cribl_control_plane/models/functiondistinct.py +7 -37
  81. cribl_control_plane/models/functiondnslookup.py +7 -188
  82. cribl_control_plane/models/functiondrop.py +8 -12
  83. cribl_control_plane/models/functiondropdimensions.py +7 -25
  84. cribl_control_plane/models/functiondynamicsampling.py +6 -58
  85. cribl_control_plane/models/functioneval.py +9 -43
  86. cribl_control_plane/models/functioneventbreaker.py +6 -40
  87. cribl_control_plane/models/functioneventstats.py +7 -30
  88. cribl_control_plane/models/functionexternaldata.py +6 -10
  89. cribl_control_plane/models/functionflatten.py +7 -28
  90. cribl_control_plane/models/functionfoldkeys.py +6 -26
  91. cribl_control_plane/models/functiongenstats.py +7 -11
  92. cribl_control_plane/models/functiongeoip.py +7 -58
  93. cribl_control_plane/models/functiongrok.py +9 -35
  94. cribl_control_plane/models/functionhandlebar.py +6 -49
  95. cribl_control_plane/models/functionjoin.py +9 -52
  96. cribl_control_plane/models/functionjsonunroll.py +6 -17
  97. cribl_control_plane/models/functionlakeexport.py +6 -39
  98. cribl_control_plane/models/functionlimit.py +6 -12
  99. cribl_control_plane/models/functionlocalsearchdatatypeparser.py +6 -12
  100. cribl_control_plane/models/functionlocalsearchrulesetrunner.py +7 -34
  101. cribl_control_plane/models/functionlookup.py +7 -86
  102. cribl_control_plane/models/functionmask.py +9 -61
  103. cribl_control_plane/models/functionmvexpand.py +7 -66
  104. cribl_control_plane/models/functionmvpull.py +6 -36
  105. cribl_control_plane/models/functionnotificationpolicies.py +8 -125
  106. cribl_control_plane/models/functionnotifications.py +6 -22
  107. cribl_control_plane/models/functionnotify.py +6 -133
  108. cribl_control_plane/models/functionnumerify.py +7 -57
  109. cribl_control_plane/models/functionotlplogs.py +6 -19
  110. cribl_control_plane/models/functionotlpmetrics.py +7 -56
  111. cribl_control_plane/models/functionotlptraces.py +6 -48
  112. cribl_control_plane/models/functionpack.py +9 -20
  113. cribl_control_plane/models/functionpivot.py +7 -23
  114. cribl_control_plane/models/functionpublishmetrics.py +7 -91
  115. cribl_control_plane/models/functionredis.py +7 -111
  116. cribl_control_plane/models/functionregexextract.py +7 -50
  117. cribl_control_plane/models/functionregexfilter.py +7 -33
  118. cribl_control_plane/models/functionrename.py +7 -45
  119. cribl_control_plane/models/functionrollupmetrics.py +7 -52
  120. cribl_control_plane/models/functionsampling.py +7 -28
  121. cribl_control_plane/models/functionsend.py +8 -80
  122. cribl_control_plane/models/functionsensitivedatascanner.py +7 -66
  123. cribl_control_plane/models/functionserde.py +6 -98
  124. cribl_control_plane/models/functionserialize.py +7 -72
  125. cribl_control_plane/models/functionsidlookup.py +7 -31
  126. cribl_control_plane/models/functionsnmptrapserialize.py +6 -81
  127. cribl_control_plane/models/functionsort.py +8 -36
  128. cribl_control_plane/models/functionstore.py +6 -69
  129. cribl_control_plane/models/functionsuppress.py +6 -52
  130. cribl_control_plane/models/functiontee.py +6 -30
  131. cribl_control_plane/models/functiontrimtimestamp.py +6 -12
  132. cribl_control_plane/models/functionunion.py +9 -20
  133. cribl_control_plane/models/functionunroll.py +6 -17
  134. cribl_control_plane/models/functionwindow.py +7 -34
  135. cribl_control_plane/models/functionxmlunroll.py +6 -29
  136. cribl_control_plane/models/getsavedjobbyidop.py +33 -0
  137. cribl_control_plane/models/getsavedjobop.py +40 -0
  138. cribl_control_plane/models/groupcreaterequest.py +3 -0
  139. cribl_control_plane/models/heartbeatmetadata.py +42 -0
  140. cribl_control_plane/models/input.py +1 -1
  141. cribl_control_plane/models/inputedgeprometheus.py +11 -11
  142. cribl_control_plane/models/inputprometheus.py +23 -18
  143. cribl_control_plane/models/nodeprovidedinfo.py +42 -0
  144. cribl_control_plane/models/output.py +15 -9
  145. cribl_control_plane/models/outputclickhouse.py +31 -0
  146. cribl_control_plane/models/outputcriblhttp.py +7 -0
  147. cribl_control_plane/models/outputcriblsearchengine.py +655 -0
  148. cribl_control_plane/models/outputnetflow.py +16 -2
  149. cribl_control_plane/models/pipeline.py +52 -4
  150. cribl_control_plane/models/pipelinefunctionaggregatemetrics.py +195 -0
  151. cribl_control_plane/models/pipelinefunctionaggregation.py +159 -0
  152. cribl_control_plane/models/pipelinefunctionautotimestamp.py +56 -0
  153. cribl_control_plane/models/pipelinefunctioncef.py +96 -0
  154. cribl_control_plane/models/pipelinefunctionchain.py +62 -0
  155. cribl_control_plane/models/pipelinefunctionclone.py +56 -0
  156. cribl_control_plane/models/pipelinefunctioncode.py +56 -0
  157. cribl_control_plane/models/pipelinefunctioncomment.py +56 -0
  158. cribl_control_plane/models/pipelinefunctionconf.py +343 -46
  159. cribl_control_plane/models/pipelinefunctionconf_input.py +353 -0
  160. cribl_control_plane/models/pipelinefunctiondistinct.py +86 -0
  161. cribl_control_plane/models/pipelinefunctiondnslookup.py +56 -0
  162. cribl_control_plane/models/pipelinefunctiondrop.py +56 -0
  163. cribl_control_plane/models/pipelinefunctiondropdimensions.py +74 -0
  164. cribl_control_plane/models/pipelinefunctiondynamicsampling.py +111 -0
  165. cribl_control_plane/models/pipelinefunctioneval.py +56 -0
  166. cribl_control_plane/models/pipelinefunctioneventbreaker.py +95 -0
  167. cribl_control_plane/models/pipelinefunctioneventstats.py +79 -0
  168. cribl_control_plane/models/pipelinefunctionexternaldata.py +56 -0
  169. cribl_control_plane/models/pipelinefunctionflatten.py +56 -0
  170. cribl_control_plane/models/pipelinefunctionfoldkeys.py +56 -0
  171. cribl_control_plane/models/pipelinefunctiongenstats.py +56 -0
  172. cribl_control_plane/models/pipelinefunctiongeoip.py +109 -0
  173. cribl_control_plane/models/pipelinefunctiongrok.py +83 -0
  174. cribl_control_plane/models/pipelinefunctionhandlebar.py +99 -0
  175. cribl_control_plane/models/pipelinefunctionjoin.py +100 -0
  176. cribl_control_plane/models/pipelinefunctionjsonunroll.py +67 -0
  177. cribl_control_plane/models/pipelinefunctionlakeexport.py +89 -0
  178. cribl_control_plane/models/pipelinefunctionlimit.py +56 -0
  179. cribl_control_plane/models/pipelinefunctionlocalsearchdatatypeparser.py +62 -0
  180. cribl_control_plane/models/pipelinefunctionlocalsearchrulesetrunner.py +56 -0
  181. cribl_control_plane/models/pipelinefunctionlookup.py +136 -0
  182. cribl_control_plane/models/pipelinefunctionmask.py +108 -0
  183. cribl_control_plane/models/pipelinefunctionmvexpand.py +116 -0
  184. cribl_control_plane/models/pipelinefunctionmvpull.py +86 -0
  185. cribl_control_plane/models/pipelinefunctionnotificationpolicies.py +56 -0
  186. cribl_control_plane/models/pipelinefunctionnotifications.py +72 -0
  187. cribl_control_plane/models/pipelinefunctionnotify.py +189 -0
  188. cribl_control_plane/models/pipelinefunctionnumerify.py +56 -0
  189. cribl_control_plane/models/pipelinefunctionotlplogs.py +56 -0
  190. cribl_control_plane/models/pipelinefunctionotlpmetrics.py +56 -0
  191. cribl_control_plane/models/pipelinefunctionotlptraces.py +56 -0
  192. cribl_control_plane/models/pipelinefunctionpack.py +67 -0
  193. cribl_control_plane/models/pipelinefunctionpivot.py +72 -0
  194. cribl_control_plane/models/pipelinefunctionpublishmetrics.py +56 -0
  195. cribl_control_plane/models/pipelinefunctionredis.py +165 -0
  196. cribl_control_plane/models/pipelinefunctionregexextract.py +100 -0
  197. cribl_control_plane/models/pipelinefunctionregexfilter.py +56 -0
  198. cribl_control_plane/models/pipelinefunctionrename.py +56 -0
  199. cribl_control_plane/models/pipelinefunctionrollupmetrics.py +56 -0
  200. cribl_control_plane/models/pipelinefunctionsampling.py +56 -0
  201. cribl_control_plane/models/pipelinefunctionsend.py +128 -0
  202. cribl_control_plane/models/pipelinefunctionsensitivedatascanner.py +120 -0
  203. cribl_control_plane/models/pipelinefunctionserde.py +149 -0
  204. cribl_control_plane/models/pipelinefunctionserialize.py +122 -0
  205. cribl_control_plane/models/pipelinefunctionsidlookup.py +56 -0
  206. cribl_control_plane/models/pipelinefunctionsnmptrapserialize.py +56 -0
  207. cribl_control_plane/models/pipelinefunctionsort.py +84 -0
  208. cribl_control_plane/models/pipelinefunctionstore.py +120 -0
  209. cribl_control_plane/models/pipelinefunctionsuppress.py +102 -0
  210. cribl_control_plane/models/pipelinefunctiontee.py +77 -0
  211. cribl_control_plane/models/pipelinefunctiontrimtimestamp.py +56 -0
  212. cribl_control_plane/models/pipelinefunctionunion.py +67 -0
  213. cribl_control_plane/models/pipelinefunctionunroll.py +67 -0
  214. cribl_control_plane/models/pipelinefunctionwindow.py +83 -0
  215. cribl_control_plane/models/pipelinefunctionxmlunroll.py +79 -0
  216. cribl_control_plane/models/runnablejobcollection.py +11 -10
  217. cribl_control_plane/models/runnablejobexecutor.py +8 -8
  218. cribl_control_plane/models/savedjob.py +26 -0
  219. cribl_control_plane/models/savedjobcollection.py +411 -0
  220. cribl_control_plane/models/savedjobexecutor.py +301 -0
  221. cribl_control_plane/models/savedjobscheduledsearch.py +278 -0
  222. cribl_control_plane/models/updatepipelinebyidop.py +4 -3
  223. cribl_control_plane/models/updatesavedjobbyidop.py +42 -0
  224. cribl_control_plane/pipelines.py +16 -16
  225. cribl_control_plane/sdk.py +4 -0
  226. {cribl_control_plane-0.4.0b23.dist-info → cribl_control_plane-0.5.0b3.dist-info}/METADATA +10 -2
  227. {cribl_control_plane-0.4.0b23.dist-info → cribl_control_plane-0.5.0b3.dist-info}/RECORD +229 -88
  228. {cribl_control_plane-0.4.0b23.dist-info → cribl_control_plane-0.5.0b3.dist-info}/WHEEL +0 -0
  229. {cribl_control_plane-0.4.0b23.dist-info → cribl_control_plane-0.5.0b3.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,16 @@
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
+ from typing import Optional
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class FunctionConfSchemaChainTypedDict(TypedDict):
10
+ processor: NotRequired[str]
11
+ r"""The data processor (Pack/Pipeline) to send events through"""
12
+
13
+
14
+ class FunctionConfSchemaChain(BaseModel):
15
+ processor: Optional[str] = None
16
+ r"""The data processor (Pack/Pipeline) to send events through"""
@@ -0,0 +1,16 @@
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
+ from typing import Dict, List, Optional
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class FunctionConfSchemaCloneTypedDict(TypedDict):
10
+ clones: NotRequired[List[Dict[str, str]]]
11
+ r"""Create clones with the following fields set"""
12
+
13
+
14
+ class FunctionConfSchemaClone(BaseModel):
15
+ clones: Optional[List[Dict[str, str]]] = None
16
+ r"""Create clones with the following fields set"""
@@ -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 Optional
7
+ from typing_extensions import Annotated, NotRequired, TypedDict
8
+
9
+
10
+ class FunctionConfSchemaCodeTypedDict(TypedDict):
11
+ code: NotRequired[str]
12
+ r"""Caution: This Function will be evaluated in an unprotected context. This means that you will be able to execute almost any JavaScript code."""
13
+ max_num_of_iterations: NotRequired[float]
14
+ r"""The maximum number of allowed iterations within this Function. Defaults to 5,000."""
15
+ active_log_sample_rate: NotRequired[float]
16
+ r"""Rate at which this Function logs errors. For example, a value of 1 (the default) logs every error, a value of 10 logs every tenth error, and so on."""
17
+ use_unique_log_channel: NotRequired[bool]
18
+ r"""Logs from this Function will be sent to a unique channel in the form `func:code:${pipelineName}:${functionIndex}`. Disable to use the generic `func:code` log channel instead."""
19
+
20
+
21
+ class FunctionConfSchemaCode(BaseModel):
22
+ code: Optional[str] = None
23
+ r"""Caution: This Function will be evaluated in an unprotected context. This means that you will be able to execute almost any JavaScript code."""
24
+
25
+ max_num_of_iterations: Annotated[
26
+ Optional[float], pydantic.Field(alias="maxNumOfIterations")
27
+ ] = 5000
28
+ r"""The maximum number of allowed iterations within this Function. Defaults to 5,000."""
29
+
30
+ active_log_sample_rate: Annotated[
31
+ Optional[float], pydantic.Field(alias="activeLogSampleRate")
32
+ ] = 1
33
+ r"""Rate at which this Function logs errors. For example, a value of 1 (the default) logs every error, a value of 10 logs every tenth error, and so on."""
34
+
35
+ use_unique_log_channel: Annotated[
36
+ Optional[bool], pydantic.Field(alias="useUniqueLogChannel")
37
+ ] = True
38
+ r"""Logs from this Function will be sent to a unique channel in the form `func:code:${pipelineName}:${functionIndex}`. Disable to use the generic `func:code` log channel instead."""
@@ -0,0 +1,16 @@
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
+ from typing import Optional
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class FunctionConfSchemaCommentTypedDict(TypedDict):
10
+ comment: NotRequired[str]
11
+ r"""Optional, short description of this Function's purpose in the Pipeline"""
12
+
13
+
14
+ class FunctionConfSchemaComment(BaseModel):
15
+ comment: Optional[str] = None
16
+ r"""Optional, short description of this Function's purpose in the Pipeline"""
@@ -0,0 +1,41 @@
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 FunctionConfSchemaDistinctTypedDict(TypedDict):
11
+ group_by: NotRequired[List[str]]
12
+ r"""Defines the properties that are concatenated to produce distinct key"""
13
+ max_combinations: NotRequired[float]
14
+ r"""maximum number of tracked combinations"""
15
+ max_depth: NotRequired[float]
16
+ r"""maximum number of groupBy properties"""
17
+ is_federated: NotRequired[bool]
18
+ r"""indicator that the operator runs on a federated executor"""
19
+ suppress_previews: NotRequired[bool]
20
+ r"""Toggle this on to suppress generating previews of intermediate results"""
21
+
22
+
23
+ class FunctionConfSchemaDistinct(BaseModel):
24
+ group_by: Annotated[Optional[List[str]], pydantic.Field(alias="groupBy")] = None
25
+ r"""Defines the properties that are concatenated to produce distinct key"""
26
+
27
+ max_combinations: Annotated[
28
+ Optional[float], pydantic.Field(alias="maxCombinations")
29
+ ] = 10000
30
+ r"""maximum number of tracked combinations"""
31
+
32
+ max_depth: Annotated[Optional[float], pydantic.Field(alias="maxDepth")] = 15
33
+ r"""maximum number of groupBy properties"""
34
+
35
+ is_federated: Annotated[Optional[bool], pydantic.Field(alias="isFederated")] = False
36
+ r"""indicator that the operator runs on a federated executor"""
37
+
38
+ suppress_previews: Annotated[
39
+ Optional[bool], pydantic.Field(alias="suppressPreviews")
40
+ ] = None
41
+ r"""Toggle this on to suppress generating previews of intermediate results"""
@@ -0,0 +1,193 @@
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 ConfigDict, field_serializer
10
+ from pydantic.functional_validators import PlainValidator
11
+ from typing import Any, Dict, List, Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class ResourceRecordType(str, Enum, metaclass=utils.OpenEnumMeta):
16
+ r"""The DNS record type (RR) to return. Defaults to 'A'."""
17
+
18
+ # A
19
+ A = "A"
20
+ # AAAA
21
+ AAAA = "AAAA"
22
+ # ANY
23
+ ANY = "ANY"
24
+ # CNAME
25
+ CNAME = "CNAME"
26
+ # MX
27
+ MX = "MX"
28
+ # NAPTR
29
+ NAPTR = "NAPTR"
30
+ # NS
31
+ NS = "NS"
32
+ # PTR
33
+ PTR = "PTR"
34
+ # SOA
35
+ SOA = "SOA"
36
+ # SRV
37
+ SRV = "SRV"
38
+ # TXT
39
+ TXT = "TXT"
40
+
41
+
42
+ class DNSLookupFieldTypedDict(TypedDict):
43
+ in_field_name: NotRequired[str]
44
+ resource_record_type: NotRequired[ResourceRecordType]
45
+ r"""The DNS record type (RR) to return. Defaults to 'A'."""
46
+ out_field_name: NotRequired[str]
47
+ r"""Name of field to add lookup results to. Leave blank to overwrite the lookup field."""
48
+
49
+
50
+ class DNSLookupField(BaseModel):
51
+ in_field_name: Annotated[Optional[str], pydantic.Field(alias="inFieldName")] = None
52
+
53
+ resource_record_type: Annotated[
54
+ Annotated[
55
+ Optional[ResourceRecordType], PlainValidator(validate_open_enum(False))
56
+ ],
57
+ pydantic.Field(alias="resourceRecordType"),
58
+ ] = ResourceRecordType.A
59
+ r"""The DNS record type (RR) to return. Defaults to 'A'."""
60
+
61
+ out_field_name: Annotated[Optional[str], pydantic.Field(alias="outFieldName")] = (
62
+ None
63
+ )
64
+ r"""Name of field to add lookup results to. Leave blank to overwrite the lookup field."""
65
+
66
+ @field_serializer("resource_record_type")
67
+ def serialize_resource_record_type(self, value):
68
+ if isinstance(value, str):
69
+ try:
70
+ return models.ResourceRecordType(value)
71
+ except ValueError:
72
+ return value
73
+ return value
74
+
75
+
76
+ class ReverseLookupFieldTypedDict(TypedDict):
77
+ in_field_name: NotRequired[str]
78
+ r"""Name of the field containing the IP to look up. If the field value is not in IPv4 or IPv6 format, the lookup is skipped."""
79
+ out_field_name: NotRequired[str]
80
+ r"""Name of field to add the resolved domain to. Leave blank to overwrite the lookup field."""
81
+
82
+
83
+ class ReverseLookupField(BaseModel):
84
+ in_field_name: Annotated[Optional[str], pydantic.Field(alias="inFieldName")] = None
85
+ r"""Name of the field containing the IP to look up. If the field value is not in IPv4 or IPv6 format, the lookup is skipped."""
86
+
87
+ out_field_name: Annotated[Optional[str], pydantic.Field(alias="outFieldName")] = (
88
+ None
89
+ )
90
+ r"""Name of field to add the resolved domain to. Leave blank to overwrite the lookup field."""
91
+
92
+
93
+ class LogLevelForFailedLookups(str, Enum, metaclass=utils.OpenEnumMeta):
94
+ # silly
95
+ SILLY = "silly"
96
+ # debug
97
+ DEBUG = "debug"
98
+ # info
99
+ INFO = "info"
100
+ # warn
101
+ WARN = "warn"
102
+ # error
103
+ ERROR = "error"
104
+
105
+
106
+ class FunctionConfSchemaDNSLookupTypedDict(TypedDict):
107
+ dns_lookup_fields: NotRequired[List[DNSLookupFieldTypedDict]]
108
+ r"""List of field names on which to perform DNS lookup"""
109
+ reverse_lookup_fields: NotRequired[List[ReverseLookupFieldTypedDict]]
110
+ r"""List of field names on which to perform reverse DNS lookup"""
111
+ dns_servers: NotRequired[List[str]]
112
+ r"""IPs, in RFC 5952 format, of the DNS servers to use for resolution. Examples: IPv4 1.1.1.1, 4.2.2.2:53, or IPv6 [2001:4860:4860::8888], [2001:4860:4860::8888]:1053. If not specified, system's DNS will be used."""
113
+ cache_ttl: NotRequired[float]
114
+ r"""How frequently to expire and refetch DNS cache. Use 0 to disable."""
115
+ max_cache_size: NotRequired[float]
116
+ r"""The maximum number of DNS resolutions to be cached locally. Leave at default unless you understand the implications of changing."""
117
+ use_resolv_conf: NotRequired[bool]
118
+ r"""Attempt to resolve DNS short names using the search or domain directive from /etc/resolv.conf"""
119
+ lookup_fallback: NotRequired[bool]
120
+ r"""If unable to resolve a DNS short name, make a DNS.lookup() call to resolve it. Caution: This might degrade performance in unrelated areas of @{product}."""
121
+ domain_overrides: NotRequired[List[str]]
122
+ r"""Specify fallback values for the DNS resolver to use when it cannot resolve a DNS short name"""
123
+ lookup_fail_log_level: NotRequired[LogLevelForFailedLookups]
124
+
125
+
126
+ class FunctionConfSchemaDNSLookup(BaseModel):
127
+ model_config = ConfigDict(
128
+ populate_by_name=True, arbitrary_types_allowed=True, extra="allow"
129
+ )
130
+ __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False)
131
+
132
+ dns_lookup_fields: Annotated[
133
+ Optional[List[DNSLookupField]], pydantic.Field(alias="dnsLookupFields")
134
+ ] = None
135
+ r"""List of field names on which to perform DNS lookup"""
136
+
137
+ reverse_lookup_fields: Annotated[
138
+ Optional[List[ReverseLookupField]], pydantic.Field(alias="reverseLookupFields")
139
+ ] = None
140
+ r"""List of field names on which to perform reverse DNS lookup"""
141
+
142
+ dns_servers: Annotated[Optional[List[str]], pydantic.Field(alias="dnsServers")] = (
143
+ None
144
+ )
145
+ r"""IPs, in RFC 5952 format, of the DNS servers to use for resolution. Examples: IPv4 1.1.1.1, 4.2.2.2:53, or IPv6 [2001:4860:4860::8888], [2001:4860:4860::8888]:1053. If not specified, system's DNS will be used."""
146
+
147
+ cache_ttl: Annotated[Optional[float], pydantic.Field(alias="cacheTTL")] = 30
148
+ r"""How frequently to expire and refetch DNS cache. Use 0 to disable."""
149
+
150
+ max_cache_size: Annotated[Optional[float], pydantic.Field(alias="maxCacheSize")] = (
151
+ 5000
152
+ )
153
+ r"""The maximum number of DNS resolutions to be cached locally. Leave at default unless you understand the implications of changing."""
154
+
155
+ use_resolv_conf: Annotated[
156
+ Optional[bool], pydantic.Field(alias="useResolvConf")
157
+ ] = False
158
+ r"""Attempt to resolve DNS short names using the search or domain directive from /etc/resolv.conf"""
159
+
160
+ lookup_fallback: Annotated[
161
+ Optional[bool], pydantic.Field(alias="lookupFallback")
162
+ ] = False
163
+ r"""If unable to resolve a DNS short name, make a DNS.lookup() call to resolve it. Caution: This might degrade performance in unrelated areas of @{product}."""
164
+
165
+ domain_overrides: Annotated[
166
+ Optional[List[str]], pydantic.Field(alias="domainOverrides")
167
+ ] = None
168
+ r"""Specify fallback values for the DNS resolver to use when it cannot resolve a DNS short name"""
169
+
170
+ lookup_fail_log_level: Annotated[
171
+ Annotated[
172
+ Optional[LogLevelForFailedLookups],
173
+ PlainValidator(validate_open_enum(False)),
174
+ ],
175
+ pydantic.Field(alias="lookupFailLogLevel"),
176
+ ] = LogLevelForFailedLookups.ERROR
177
+
178
+ @property
179
+ def additional_properties(self):
180
+ return self.__pydantic_extra__
181
+
182
+ @additional_properties.setter
183
+ def additional_properties(self, value):
184
+ self.__pydantic_extra__ = value # pyright: ignore[reportIncompatibleVariableOverride]
185
+
186
+ @field_serializer("lookup_fail_log_level")
187
+ def serialize_lookup_fail_log_level(self, value):
188
+ if isinstance(value, str):
189
+ try:
190
+ return models.LogLevelForFailedLookups(value)
191
+ except ValueError:
192
+ return value
193
+ return value
@@ -0,0 +1,13 @@
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
+ from typing_extensions import TypedDict
6
+
7
+
8
+ class FunctionConfSchemaDropTypedDict(TypedDict):
9
+ pass
10
+
11
+
12
+ class FunctionConfSchemaDrop(BaseModel):
13
+ pass
@@ -0,0 +1,31 @@
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 FunctionConfSchemaDropDimensionsTypedDict(TypedDict):
11
+ time_window: NotRequired[str]
12
+ r"""The time span of the tumbling window for aggregating events. Must be a valid time string (such as 10s)."""
13
+ drop_dimensions: NotRequired[List[str]]
14
+ r"""One or more dimensions to be dropped. Supports wildcard expressions. Warning: Using wildcard '*' causes all dimensions in the event to be dropped."""
15
+ flush_on_input_close: NotRequired[bool]
16
+ r"""Flush aggregations when an input stream is closed. If disabled, aggregations are flushed based on Time Window Settings instead."""
17
+
18
+
19
+ class FunctionConfSchemaDropDimensions(BaseModel):
20
+ time_window: Annotated[Optional[str], pydantic.Field(alias="timeWindow")] = "10s"
21
+ r"""The time span of the tumbling window for aggregating events. Must be a valid time string (such as 10s)."""
22
+
23
+ drop_dimensions: Annotated[
24
+ Optional[List[str]], pydantic.Field(alias="dropDimensions")
25
+ ] = None
26
+ r"""One or more dimensions to be dropped. Supports wildcard expressions. Warning: Using wildcard '*' causes all dimensions in the event to be dropped."""
27
+
28
+ flush_on_input_close: Annotated[
29
+ Optional[bool], pydantic.Field(alias="flushOnInputClose")
30
+ ] = True
31
+ r"""Flush aggregations when an input stream is closed. If disabled, aggregations are flushed based on Time Window Settings instead."""
@@ -0,0 +1,67 @@
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 FunctionConfSchemaDynamicSamplingSampleMode(
16
+ str, Enum, metaclass=utils.OpenEnumMeta
17
+ ):
18
+ r"""Defines how sample rate will be derived: log(previousPeriodCount) or sqrt(previousPeriodCount)"""
19
+
20
+ # Logarithmic
21
+ LOG = "log"
22
+ # Square Root
23
+ SQRT = "sqrt"
24
+
25
+
26
+ class FunctionConfSchemaDynamicSamplingTypedDict(TypedDict):
27
+ mode: NotRequired[FunctionConfSchemaDynamicSamplingSampleMode]
28
+ r"""Defines how sample rate will be derived: log(previousPeriodCount) or sqrt(previousPeriodCount)"""
29
+ key_expr: NotRequired[str]
30
+ r"""Expression used to derive sample group key. Example:`${domain}:${status}`. Each sample group will have its own derived sampling rate based on volume. Defaults to `${host}`."""
31
+ sample_period: NotRequired[float]
32
+ r"""How often (in seconds) sample rates will be adjusted"""
33
+ min_events: NotRequired[float]
34
+ r"""Minimum number of events that must be received in previous sample period for sampling mode to be applied to current period. If the number of events received for a sample group is less than this minimum, a sample rate of 1:1 is used."""
35
+ max_sample_rate: NotRequired[float]
36
+ r"""Maximum sampling rate. If computed sampling rate is above this value, it will be limited to this value."""
37
+
38
+
39
+ class FunctionConfSchemaDynamicSampling(BaseModel):
40
+ mode: Annotated[
41
+ Optional[FunctionConfSchemaDynamicSamplingSampleMode],
42
+ PlainValidator(validate_open_enum(False)),
43
+ ] = FunctionConfSchemaDynamicSamplingSampleMode.LOG
44
+ r"""Defines how sample rate will be derived: log(previousPeriodCount) or sqrt(previousPeriodCount)"""
45
+
46
+ key_expr: Annotated[Optional[str], pydantic.Field(alias="keyExpr")] = "`${host}`"
47
+ r"""Expression used to derive sample group key. Example:`${domain}:${status}`. Each sample group will have its own derived sampling rate based on volume. Defaults to `${host}`."""
48
+
49
+ sample_period: Annotated[Optional[float], pydantic.Field(alias="samplePeriod")] = 30
50
+ r"""How often (in seconds) sample rates will be adjusted"""
51
+
52
+ min_events: Annotated[Optional[float], pydantic.Field(alias="minEvents")] = 30
53
+ r"""Minimum number of events that must be received in previous sample period for sampling mode to be applied to current period. If the number of events received for a sample group is less than this minimum, a sample rate of 1:1 is used."""
54
+
55
+ max_sample_rate: Annotated[
56
+ Optional[float], pydantic.Field(alias="maxSampleRate")
57
+ ] = 100
58
+ r"""Maximum sampling rate. If computed sampling rate is above this value, it will be limited to this value."""
59
+
60
+ @field_serializer("mode")
61
+ def serialize_mode(self, value):
62
+ if isinstance(value, str):
63
+ try:
64
+ return models.FunctionConfSchemaDynamicSamplingSampleMode(value)
65
+ except ValueError:
66
+ return value
67
+ return value
@@ -0,0 +1,44 @@
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
+ from typing import List, Optional
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class FunctionConfSchemaEvalAddTypedDict(TypedDict):
10
+ value: str
11
+ r"""JavaScript expression to compute the value (can be constant)"""
12
+ name: NotRequired[str]
13
+ disabled: NotRequired[bool]
14
+ r"""Set to No to disable the evaluation of an individual expression"""
15
+
16
+
17
+ class FunctionConfSchemaEvalAdd(BaseModel):
18
+ value: str
19
+ r"""JavaScript expression to compute the value (can be constant)"""
20
+
21
+ name: Optional[str] = None
22
+
23
+ disabled: Optional[bool] = False
24
+ r"""Set to No to disable the evaluation of an individual expression"""
25
+
26
+
27
+ class FunctionConfSchemaEvalTypedDict(TypedDict):
28
+ add: NotRequired[List[FunctionConfSchemaEvalAddTypedDict]]
29
+ r"""Set of key-value pairs to evaluate and add/set"""
30
+ keep: NotRequired[List[str]]
31
+ r"""List of fields to keep. Supports * wildcards. Takes precedence over 'Remove fields'."""
32
+ remove: NotRequired[List[str]]
33
+ r"""List of fields to remove. Supports * wildcards. Fields that match 'Keep fields' will not be removed. Enclose field names containing special characters in single or double quotes."""
34
+
35
+
36
+ class FunctionConfSchemaEval(BaseModel):
37
+ add: Optional[List[FunctionConfSchemaEvalAdd]] = None
38
+ r"""Set of key-value pairs to evaluate and add/set"""
39
+
40
+ keep: Optional[List[str]] = None
41
+ r"""List of fields to keep. Supports * wildcards. Takes precedence over 'Remove fields'."""
42
+
43
+ remove: Optional[List[str]] = None
44
+ r"""List of fields to remove. Supports * wildcards. Fields that match 'Keep fields' will not be removed. Enclose field names containing special characters in single or double quotes."""
@@ -0,0 +1,51 @@
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 FunctionConfSchemaEventBreakerExistingOrNew(
16
+ str, Enum, metaclass=utils.OpenEnumMeta
17
+ ):
18
+ # Use Existing
19
+ EXISTING = "existing"
20
+ # Create New
21
+ NEW = "new"
22
+
23
+
24
+ class FunctionConfSchemaEventBreakerTypedDict(TypedDict):
25
+ existing_or_new: NotRequired[FunctionConfSchemaEventBreakerExistingOrNew]
26
+ should_mark_cribl_breaker: NotRequired[bool]
27
+ r"""Add this Function name to the cribl_breaker field"""
28
+
29
+
30
+ class FunctionConfSchemaEventBreaker(BaseModel):
31
+ existing_or_new: Annotated[
32
+ Annotated[
33
+ Optional[FunctionConfSchemaEventBreakerExistingOrNew],
34
+ PlainValidator(validate_open_enum(False)),
35
+ ],
36
+ pydantic.Field(alias="existingOrNew"),
37
+ ] = FunctionConfSchemaEventBreakerExistingOrNew.EXISTING
38
+
39
+ should_mark_cribl_breaker: Annotated[
40
+ Optional[bool], pydantic.Field(alias="shouldMarkCriblBreaker")
41
+ ] = True
42
+ r"""Add this Function name to the cribl_breaker field"""
43
+
44
+ @field_serializer("existing_or_new")
45
+ def serialize_existing_or_new(self, value):
46
+ if isinstance(value, str):
47
+ try:
48
+ return models.FunctionConfSchemaEventBreakerExistingOrNew(value)
49
+ except ValueError:
50
+ return value
51
+ return value
@@ -0,0 +1,34 @@
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 FunctionConfSchemaEventstatsTypedDict(TypedDict):
11
+ aggregations: NotRequired[List[str]]
12
+ r"""Aggregate function(s) to perform on events. E.g., sum(bytes).where(action=='REJECT').as(TotalBytes)"""
13
+ group_bys: NotRequired[List[str]]
14
+ r"""Fields to group aggregates by, supports wildcard expressions."""
15
+ max_events: NotRequired[float]
16
+ r"""Specifies how many events are at max kept in memory to be enriched with aggregations"""
17
+ flush_on_input_close: NotRequired[bool]
18
+ r"""Determines if aggregations should flush when an input stream is closed. If disabled, time window settings will control flush behavior."""
19
+
20
+
21
+ class FunctionConfSchemaEventstats(BaseModel):
22
+ aggregations: Optional[List[str]] = None
23
+ r"""Aggregate function(s) to perform on events. E.g., sum(bytes).where(action=='REJECT').as(TotalBytes)"""
24
+
25
+ group_bys: Annotated[Optional[List[str]], pydantic.Field(alias="groupBys")] = None
26
+ r"""Fields to group aggregates by, supports wildcard expressions."""
27
+
28
+ max_events: Annotated[Optional[float], pydantic.Field(alias="maxEvents")] = 50000
29
+ r"""Specifies how many events are at max kept in memory to be enriched with aggregations"""
30
+
31
+ flush_on_input_close: Annotated[
32
+ Optional[bool], pydantic.Field(alias="flushOnInputClose")
33
+ ] = False
34
+ r"""Determines if aggregations should flush when an input stream is closed. If disabled, time window settings will control flush behavior."""
@@ -0,0 +1,13 @@
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
+ from typing_extensions import TypedDict
6
+
7
+
8
+ class FunctionConfSchemaExternaldataTypedDict(TypedDict):
9
+ pass
10
+
11
+
12
+ class FunctionConfSchemaExternaldata(BaseModel):
13
+ pass
@@ -0,0 +1,31 @@
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
+ from typing import List, Optional
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class FunctionConfSchemaFlattenTypedDict(TypedDict):
10
+ fields: NotRequired[List[str]]
11
+ r"""List of top-level fields to include for flattening. Supports * wildcards, except when used on internal fields. Defaults to empty array, which means all fields."""
12
+ prefix: NotRequired[str]
13
+ r"""Prefix string for flattened field names. Defaults to empty."""
14
+ depth: NotRequired[float]
15
+ r"""Number representing the nested levels to consider for flattening. Defaults to 5. Minimum should be 1."""
16
+ delimiter: NotRequired[str]
17
+ r"""Delimiter to be used for flattening. Defaults to underscore."""
18
+
19
+
20
+ class FunctionConfSchemaFlatten(BaseModel):
21
+ fields: Optional[List[str]] = None
22
+ r"""List of top-level fields to include for flattening. Supports * wildcards, except when used on internal fields. Defaults to empty array, which means all fields."""
23
+
24
+ prefix: Optional[str] = ""
25
+ r"""Prefix string for flattened field names. Defaults to empty."""
26
+
27
+ depth: Optional[float] = 5
28
+ r"""Number representing the nested levels to consider for flattening. Defaults to 5. Minimum should be 1."""
29
+
30
+ delimiter: Optional[str] = "_"
31
+ r"""Delimiter to be used for flattening. Defaults to underscore."""
@@ -0,0 +1,31 @@
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 Optional
7
+ from typing_extensions import Annotated, NotRequired, TypedDict
8
+
9
+
10
+ class FunctionConfSchemaFoldkeysTypedDict(TypedDict):
11
+ delete_original: NotRequired[bool]
12
+ r"""When enabled (default), only the folded keys are kept. When disabled, the original entries are retained alongside the folded keys."""
13
+ separator: NotRequired[str]
14
+ r"""Character or string used to separate key levels to be folded. Defaults to the dot (.) character."""
15
+ selection_reg_exp: NotRequired[str]
16
+ r"""Optional regular expression to select a subset of the keys to fold."""
17
+
18
+
19
+ class FunctionConfSchemaFoldkeys(BaseModel):
20
+ delete_original: Annotated[
21
+ Optional[bool], pydantic.Field(alias="deleteOriginal")
22
+ ] = True
23
+ r"""When enabled (default), only the folded keys are kept. When disabled, the original entries are retained alongside the folded keys."""
24
+
25
+ separator: Optional[str] = "."
26
+ r"""Character or string used to separate key levels to be folded. Defaults to the dot (.) character."""
27
+
28
+ selection_reg_exp: Annotated[
29
+ Optional[str], pydantic.Field(alias="selectionRegExp")
30
+ ] = None
31
+ r"""Optional regular expression to select a subset of the keys to fold."""