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
@@ -30,7 +30,7 @@ class OutputNetflowHost(BaseModel):
30
30
  class OutputNetflowTypedDict(TypedDict):
31
31
  type: OutputNetflowType
32
32
  hosts: List[OutputNetflowHostTypedDict]
33
- r"""One or more NetFlow destinations to forward events to"""
33
+ r"""One or more NetFlow Destinations to forward events to"""
34
34
  id: NotRequired[str]
35
35
  r"""Unique ID for this output"""
36
36
  pipeline: NotRequired[str]
@@ -43,14 +43,18 @@ class OutputNetflowTypedDict(TypedDict):
43
43
  r"""Tags for filtering and grouping in @{product}"""
44
44
  dns_resolve_period_sec: NotRequired[float]
45
45
  r"""How often to resolve the destination hostname to an IP address. Ignored if all destinations are IP addresses. A value of 0 means every datagram sent will incur a DNS lookup."""
46
+ enable_ip_spoofing: NotRequired[bool]
47
+ r"""Send NetFlow traffic using the original event's Source IP and port. To enable this, you must install the external `udp-sender` helper binary at `/usr/bin/udp-sender` on all Worker Nodes and grant it the `CAP_NET_RAW` capability."""
46
48
  description: NotRequired[str]
49
+ max_record_size: NotRequired[float]
50
+ r"""MTU in bytes. The actual maximum NetFlow payload size will be MTU minus IP and UDP headers (28 bytes for IPv4, 48 bytes for IPv6). For example, with the default MTU of 1500, the max payload is 1472 bytes for IPv4. Payloads exceeding this limit will be dropped."""
47
51
 
48
52
 
49
53
  class OutputNetflow(BaseModel):
50
54
  type: OutputNetflowType
51
55
 
52
56
  hosts: List[OutputNetflowHost]
53
- r"""One or more NetFlow destinations to forward events to"""
57
+ r"""One or more NetFlow Destinations to forward events to"""
54
58
 
55
59
  id: Optional[str] = None
56
60
  r"""Unique ID for this output"""
@@ -74,4 +78,14 @@ class OutputNetflow(BaseModel):
74
78
  ] = 0
75
79
  r"""How often to resolve the destination hostname to an IP address. Ignored if all destinations are IP addresses. A value of 0 means every datagram sent will incur a DNS lookup."""
76
80
 
81
+ enable_ip_spoofing: Annotated[
82
+ Optional[bool], pydantic.Field(alias="enableIpSpoofing")
83
+ ] = False
84
+ r"""Send NetFlow traffic using the original event's Source IP and port. To enable this, you must install the external `udp-sender` helper binary at `/usr/bin/udp-sender` on all Worker Nodes and grant it the `CAP_NET_RAW` capability."""
85
+
77
86
  description: Optional[str] = None
87
+
88
+ max_record_size: Annotated[
89
+ Optional[float], pydantic.Field(alias="maxRecordSize")
90
+ ] = 1500
91
+ r"""MTU in bytes. The actual maximum NetFlow payload size will be MTU minus IP and UDP headers (28 bytes for IPv4, 48 bytes for IPv6). For example, with the default MTU of 1500, the max payload is 1472 bytes for IPv4. Payloads exceeding this limit will be dropped."""
@@ -2,6 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
  from .pipelinefunctionconf import PipelineFunctionConf, PipelineFunctionConfTypedDict
5
+ from .pipelinefunctionconf_input import (
6
+ PipelineFunctionConfInput,
7
+ PipelineFunctionConfInputTypedDict,
8
+ )
5
9
  from cribl_control_plane.types import BaseModel
6
10
  import pydantic
7
11
  from typing import Dict, List, Optional
@@ -26,7 +30,7 @@ class PipelineGroups(BaseModel):
26
30
  r"""Whether this group is disabled"""
27
31
 
28
32
 
29
- class ConfTypedDict(TypedDict):
33
+ class PipelineConfTypedDict(TypedDict):
30
34
  async_func_timeout: NotRequired[int]
31
35
  r"""Time (in ms) to wait for an async function to complete processing of a data item"""
32
36
  output: NotRequired[str]
@@ -39,7 +43,7 @@ class ConfTypedDict(TypedDict):
39
43
  groups: NotRequired[Dict[str, PipelineGroupsTypedDict]]
40
44
 
41
45
 
42
- class Conf(BaseModel):
46
+ class PipelineConf(BaseModel):
43
47
  async_func_timeout: Annotated[
44
48
  Optional[int], pydantic.Field(alias="asyncFuncTimeout")
45
49
  ] = None
@@ -61,10 +65,54 @@ class Conf(BaseModel):
61
65
 
62
66
  class PipelineTypedDict(TypedDict):
63
67
  id: str
64
- conf: ConfTypedDict
68
+ conf: PipelineConfTypedDict
65
69
 
66
70
 
67
71
  class Pipeline(BaseModel):
68
72
  id: str
69
73
 
70
- conf: Conf
74
+ conf: PipelineConf
75
+
76
+
77
+ class ConfInputTypedDict(TypedDict):
78
+ async_func_timeout: NotRequired[int]
79
+ r"""Time (in ms) to wait for an async function to complete processing of a data item"""
80
+ output: NotRequired[str]
81
+ r"""The output destination for events processed by this Pipeline"""
82
+ description: NotRequired[str]
83
+ streamtags: NotRequired[List[str]]
84
+ r"""Tags for filtering and grouping in @{product}"""
85
+ functions: NotRequired[List[PipelineFunctionConfInputTypedDict]]
86
+ r"""List of Functions to pass data through"""
87
+ groups: NotRequired[Dict[str, PipelineGroupsTypedDict]]
88
+
89
+
90
+ class ConfInput(BaseModel):
91
+ async_func_timeout: Annotated[
92
+ Optional[int], pydantic.Field(alias="asyncFuncTimeout")
93
+ ] = None
94
+ r"""Time (in ms) to wait for an async function to complete processing of a data item"""
95
+
96
+ output: Optional[str] = "default"
97
+ r"""The output destination for events processed by this Pipeline"""
98
+
99
+ description: Optional[str] = None
100
+
101
+ streamtags: Optional[List[str]] = None
102
+ r"""Tags for filtering and grouping in @{product}"""
103
+
104
+ functions: Optional[List[PipelineFunctionConfInput]] = None
105
+ r"""List of Functions to pass data through"""
106
+
107
+ groups: Optional[Dict[str, PipelineGroups]] = None
108
+
109
+
110
+ class PipelineInputTypedDict(TypedDict):
111
+ id: str
112
+ conf: ConfInputTypedDict
113
+
114
+
115
+ class PipelineInput(BaseModel):
116
+ id: str
117
+
118
+ conf: ConfInput
@@ -0,0 +1,195 @@
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 PipelineFunctionAggregateMetricsID(str, Enum):
16
+ r"""Function ID"""
17
+
18
+ AGGREGATE_METRICS = "aggregate_metrics"
19
+
20
+
21
+ class PipelineFunctionAggregateMetricsMetricType(
22
+ str, Enum, metaclass=utils.OpenEnumMeta
23
+ ):
24
+ r"""The output metric type"""
25
+
26
+ AUTOMATIC = "automatic"
27
+ COUNTER = "counter"
28
+ DISTRIBUTION = "distribution"
29
+ GAUGE = "gauge"
30
+ HISTOGRAM = "histogram"
31
+ SUMMARY = "summary"
32
+ TIMER = "timer"
33
+
34
+
35
+ class PipelineFunctionAggregateMetricsAggregationTypedDict(TypedDict):
36
+ agg: str
37
+ r"""Aggregate function to perform on events. Example: sum(bytes).where(action=='REJECT').as(TotalBytes)"""
38
+ metric_type: NotRequired[PipelineFunctionAggregateMetricsMetricType]
39
+ r"""The output metric type"""
40
+
41
+
42
+ class PipelineFunctionAggregateMetricsAggregation(BaseModel):
43
+ agg: str
44
+ r"""Aggregate function to perform on events. Example: sum(bytes).where(action=='REJECT').as(TotalBytes)"""
45
+
46
+ metric_type: Annotated[
47
+ Annotated[
48
+ Optional[PipelineFunctionAggregateMetricsMetricType],
49
+ PlainValidator(validate_open_enum(False)),
50
+ ],
51
+ pydantic.Field(alias="metricType"),
52
+ ] = PipelineFunctionAggregateMetricsMetricType.AUTOMATIC
53
+ r"""The output metric type"""
54
+
55
+ @field_serializer("metric_type")
56
+ def serialize_metric_type(self, value):
57
+ if isinstance(value, str):
58
+ try:
59
+ return models.PipelineFunctionAggregateMetricsMetricType(value)
60
+ except ValueError:
61
+ return value
62
+ return value
63
+
64
+
65
+ class PipelineFunctionAggregateMetricsAddTypedDict(TypedDict):
66
+ value: str
67
+ r"""JavaScript expression to compute the value (can be constant)"""
68
+ name: NotRequired[str]
69
+
70
+
71
+ class PipelineFunctionAggregateMetricsAdd(BaseModel):
72
+ value: str
73
+ r"""JavaScript expression to compute the value (can be constant)"""
74
+
75
+ name: Optional[str] = None
76
+
77
+
78
+ class PipelineFunctionAggregateMetricsConfTypedDict(TypedDict):
79
+ aggregations: List[PipelineFunctionAggregateMetricsAggregationTypedDict]
80
+ r"""Combination of Aggregation function and output metric type"""
81
+ passthrough: NotRequired[bool]
82
+ r"""Pass through the original events along with the aggregation events"""
83
+ preserve_group_bys: NotRequired[bool]
84
+ r"""Preserve the structure of the original aggregation event's groupby fields"""
85
+ sufficient_stats_only: NotRequired[bool]
86
+ r"""Output only statistics that are sufficient for the supplied aggregations"""
87
+ prefix: NotRequired[str]
88
+ r"""A prefix that is prepended to all of the fields output by this Aggregations Function"""
89
+ time_window: NotRequired[str]
90
+ r"""The time span of the tumbling window for aggregating events. Must be a valid time string (such as 10s)."""
91
+ groupbys: NotRequired[List[str]]
92
+ r"""Optional: One or more dimensions to group aggregates by. Supports wildcard expressions. Wrap dimension names in quotes if using literal identifiers, such as 'service.name'. Warning: Using wildcard '*' causes all dimensions in the event to be included, which can result in high cardinality and increased memory usage. Exclude dimensions that can result in high cardinality before using wildcards. Example: !_time, !_numericValue, *"""
93
+ flush_event_limit: NotRequired[float]
94
+ r"""The maximum number of events to include in any given aggregation event"""
95
+ flush_mem_limit: NotRequired[str]
96
+ r"""The memory usage limit to impose upon aggregations. Defaults to 80% of the process memory; value configured above default limit is ignored. Accepts numerals with units like KB and MB (example: 128MB)."""
97
+ cumulative: NotRequired[bool]
98
+ r"""Enable to retain aggregations for cumulative aggregations when flushing out an aggregation table event. When disabled (the default), aggregations are reset to 0 on flush."""
99
+ should_treat_dots_as_literals: NotRequired[bool]
100
+ r"""Treat dots in dimension names as literals. This is useful for top-level dimensions that contain dots, such as 'service.name'."""
101
+ add: NotRequired[List[PipelineFunctionAggregateMetricsAddTypedDict]]
102
+ r"""Set of key-value pairs to evaluate and add/set"""
103
+ flush_on_input_close: NotRequired[bool]
104
+ r"""Flush aggregations when an input stream is closed. If disabled, Time Window Settings control flush behavior."""
105
+
106
+
107
+ class PipelineFunctionAggregateMetricsConf(BaseModel):
108
+ aggregations: List[PipelineFunctionAggregateMetricsAggregation]
109
+ r"""Combination of Aggregation function and output metric type"""
110
+
111
+ passthrough: Optional[bool] = False
112
+ r"""Pass through the original events along with the aggregation events"""
113
+
114
+ preserve_group_bys: Annotated[
115
+ Optional[bool], pydantic.Field(alias="preserveGroupBys")
116
+ ] = False
117
+ r"""Preserve the structure of the original aggregation event's groupby fields"""
118
+
119
+ sufficient_stats_only: Annotated[
120
+ Optional[bool], pydantic.Field(alias="sufficientStatsOnly")
121
+ ] = False
122
+ r"""Output only statistics that are sufficient for the supplied aggregations"""
123
+
124
+ prefix: Optional[str] = None
125
+ r"""A prefix that is prepended to all of the fields output by this Aggregations Function"""
126
+
127
+ time_window: Annotated[Optional[str], pydantic.Field(alias="timeWindow")] = "10s"
128
+ r"""The time span of the tumbling window for aggregating events. Must be a valid time string (such as 10s)."""
129
+
130
+ groupbys: Optional[List[str]] = None
131
+ r"""Optional: One or more dimensions to group aggregates by. Supports wildcard expressions. Wrap dimension names in quotes if using literal identifiers, such as 'service.name'. Warning: Using wildcard '*' causes all dimensions in the event to be included, which can result in high cardinality and increased memory usage. Exclude dimensions that can result in high cardinality before using wildcards. Example: !_time, !_numericValue, *"""
132
+
133
+ flush_event_limit: Annotated[
134
+ Optional[float], pydantic.Field(alias="flushEventLimit")
135
+ ] = None
136
+ r"""The maximum number of events to include in any given aggregation event"""
137
+
138
+ flush_mem_limit: Annotated[Optional[str], pydantic.Field(alias="flushMemLimit")] = (
139
+ None
140
+ )
141
+ r"""The memory usage limit to impose upon aggregations. Defaults to 80% of the process memory; value configured above default limit is ignored. Accepts numerals with units like KB and MB (example: 128MB)."""
142
+
143
+ cumulative: Optional[bool] = False
144
+ r"""Enable to retain aggregations for cumulative aggregations when flushing out an aggregation table event. When disabled (the default), aggregations are reset to 0 on flush."""
145
+
146
+ should_treat_dots_as_literals: Annotated[
147
+ Optional[bool], pydantic.Field(alias="shouldTreatDotsAsLiterals")
148
+ ] = True
149
+ r"""Treat dots in dimension names as literals. This is useful for top-level dimensions that contain dots, such as 'service.name'."""
150
+
151
+ add: Optional[List[PipelineFunctionAggregateMetricsAdd]] = None
152
+ r"""Set of key-value pairs to evaluate and add/set"""
153
+
154
+ flush_on_input_close: Annotated[
155
+ Optional[bool], pydantic.Field(alias="flushOnInputClose")
156
+ ] = True
157
+ r"""Flush aggregations when an input stream is closed. If disabled, Time Window Settings control flush behavior."""
158
+
159
+
160
+ class PipelineFunctionAggregateMetricsTypedDict(TypedDict):
161
+ id: PipelineFunctionAggregateMetricsID
162
+ r"""Function ID"""
163
+ conf: PipelineFunctionAggregateMetricsConfTypedDict
164
+ filter_: NotRequired[str]
165
+ r"""Filter that selects data to be fed through this Function"""
166
+ description: NotRequired[str]
167
+ r"""Simple description of this step"""
168
+ disabled: NotRequired[bool]
169
+ r"""If true, data will not be pushed through this function"""
170
+ final: NotRequired[bool]
171
+ r"""If enabled, stops the results of this Function from being passed to the downstream Functions"""
172
+ group_id: NotRequired[str]
173
+ r"""Group ID"""
174
+
175
+
176
+ class PipelineFunctionAggregateMetrics(BaseModel):
177
+ id: PipelineFunctionAggregateMetricsID
178
+ r"""Function ID"""
179
+
180
+ conf: PipelineFunctionAggregateMetricsConf
181
+
182
+ filter_: Annotated[Optional[str], pydantic.Field(alias="filter")] = "true"
183
+ r"""Filter that selects data to be fed through this Function"""
184
+
185
+ description: Optional[str] = None
186
+ r"""Simple description of this step"""
187
+
188
+ disabled: Optional[bool] = None
189
+ r"""If true, data will not be pushed through this function"""
190
+
191
+ final: Optional[bool] = None
192
+ r"""If enabled, stops the results of this Function from being passed to the downstream Functions"""
193
+
194
+ group_id: Annotated[Optional[str], pydantic.Field(alias="groupId")] = None
195
+ r"""Group ID"""
@@ -0,0 +1,159 @@
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 enum import Enum
6
+ import pydantic
7
+ from typing import List, Optional
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class PipelineFunctionAggregationID(str, Enum):
12
+ r"""Function ID"""
13
+
14
+ AGGREGATION = "aggregation"
15
+
16
+
17
+ class PipelineFunctionAggregationAddTypedDict(TypedDict):
18
+ value: str
19
+ r"""JavaScript expression to compute the value (can be constant)"""
20
+ name: NotRequired[str]
21
+
22
+
23
+ class PipelineFunctionAggregationAdd(BaseModel):
24
+ value: str
25
+ r"""JavaScript expression to compute the value (can be constant)"""
26
+
27
+ name: Optional[str] = None
28
+
29
+
30
+ class PipelineFunctionAggregationConfTypedDict(TypedDict):
31
+ aggregations: List[str]
32
+ r"""Aggregate function to perform on events. Example: sum(bytes).where(action=='REJECT').as(TotalBytes)"""
33
+ passthrough: NotRequired[bool]
34
+ r"""Pass through the original events along with the aggregation events"""
35
+ preserve_group_bys: NotRequired[bool]
36
+ r"""Preserve the structure of the original aggregation event's groupby fields"""
37
+ sufficient_stats_only: NotRequired[bool]
38
+ r"""Output only statistics that are sufficient for the supplied aggregations"""
39
+ metrics_mode: NotRequired[bool]
40
+ r"""Enable to output the aggregates as metrics. When disabled, aggregates are output as events."""
41
+ prefix: NotRequired[str]
42
+ r"""A prefix that is prepended to all of the fields output by this Aggregations Function"""
43
+ time_window: NotRequired[str]
44
+ r"""The time span of the tumbling window for aggregating events. Must be a valid time string (such as 10s)."""
45
+ groupbys: NotRequired[List[str]]
46
+ r"""Optional: One or more fields to group aggregates by. Supports wildcard expressions. Warning: Using wildcard '*' causes all fields in the event to be included, which can result in high cardinality and increased memory usage. Exclude fields that can result in high cardinality before using wildcards. Example: !_time, !_numericValue, *"""
47
+ flush_event_limit: NotRequired[float]
48
+ r"""The maximum number of events to include in any given aggregation event"""
49
+ flush_mem_limit: NotRequired[str]
50
+ r"""The memory usage limit to impose upon aggregations. Defaults to 80% of the process memory; value configured above default limit is ignored. Accepts numerals with units like KB and MB (example: 128MB)."""
51
+ cumulative: NotRequired[bool]
52
+ r"""Enable to retain aggregations for cumulative aggregations when flushing out an aggregation table event. When disabled (the default), aggregations are reset to 0 on flush."""
53
+ search_agg_mode: NotRequired[str]
54
+ r"""Allows Cribl Search-specific aggregation configuration"""
55
+ add: NotRequired[List[PipelineFunctionAggregationAddTypedDict]]
56
+ r"""Set of key-value pairs to evaluate and add/set"""
57
+ should_treat_dots_as_literals: NotRequired[bool]
58
+ r"""Treat dots in dimension names as literals. This is useful for top-level dimensions that contain dots, such as 'service.name'."""
59
+ flush_on_input_close: NotRequired[bool]
60
+ r"""Flush aggregations when an input stream is closed. If disabled, Time Window Settings control flush behavior."""
61
+
62
+
63
+ class PipelineFunctionAggregationConf(BaseModel):
64
+ aggregations: List[str]
65
+ r"""Aggregate function to perform on events. Example: sum(bytes).where(action=='REJECT').as(TotalBytes)"""
66
+
67
+ passthrough: Optional[bool] = False
68
+ r"""Pass through the original events along with the aggregation events"""
69
+
70
+ preserve_group_bys: Annotated[
71
+ Optional[bool], pydantic.Field(alias="preserveGroupBys")
72
+ ] = False
73
+ r"""Preserve the structure of the original aggregation event's groupby fields"""
74
+
75
+ sufficient_stats_only: Annotated[
76
+ Optional[bool], pydantic.Field(alias="sufficientStatsOnly")
77
+ ] = False
78
+ r"""Output only statistics that are sufficient for the supplied aggregations"""
79
+
80
+ metrics_mode: Annotated[Optional[bool], pydantic.Field(alias="metricsMode")] = False
81
+ r"""Enable to output the aggregates as metrics. When disabled, aggregates are output as events."""
82
+
83
+ prefix: Optional[str] = None
84
+ r"""A prefix that is prepended to all of the fields output by this Aggregations Function"""
85
+
86
+ time_window: Annotated[Optional[str], pydantic.Field(alias="timeWindow")] = "10s"
87
+ r"""The time span of the tumbling window for aggregating events. Must be a valid time string (such as 10s)."""
88
+
89
+ groupbys: Optional[List[str]] = None
90
+ r"""Optional: One or more fields to group aggregates by. Supports wildcard expressions. Warning: Using wildcard '*' causes all fields in the event to be included, which can result in high cardinality and increased memory usage. Exclude fields that can result in high cardinality before using wildcards. Example: !_time, !_numericValue, *"""
91
+
92
+ flush_event_limit: Annotated[
93
+ Optional[float], pydantic.Field(alias="flushEventLimit")
94
+ ] = None
95
+ r"""The maximum number of events to include in any given aggregation event"""
96
+
97
+ flush_mem_limit: Annotated[Optional[str], pydantic.Field(alias="flushMemLimit")] = (
98
+ None
99
+ )
100
+ r"""The memory usage limit to impose upon aggregations. Defaults to 80% of the process memory; value configured above default limit is ignored. Accepts numerals with units like KB and MB (example: 128MB)."""
101
+
102
+ cumulative: Optional[bool] = False
103
+ r"""Enable to retain aggregations for cumulative aggregations when flushing out an aggregation table event. When disabled (the default), aggregations are reset to 0 on flush."""
104
+
105
+ search_agg_mode: Annotated[Optional[str], pydantic.Field(alias="searchAggMode")] = (
106
+ None
107
+ )
108
+ r"""Allows Cribl Search-specific aggregation configuration"""
109
+
110
+ add: Optional[List[PipelineFunctionAggregationAdd]] = None
111
+ r"""Set of key-value pairs to evaluate and add/set"""
112
+
113
+ should_treat_dots_as_literals: Annotated[
114
+ Optional[bool], pydantic.Field(alias="shouldTreatDotsAsLiterals")
115
+ ] = False
116
+ r"""Treat dots in dimension names as literals. This is useful for top-level dimensions that contain dots, such as 'service.name'."""
117
+
118
+ flush_on_input_close: Annotated[
119
+ Optional[bool], pydantic.Field(alias="flushOnInputClose")
120
+ ] = True
121
+ r"""Flush aggregations when an input stream is closed. If disabled, Time Window Settings control flush behavior."""
122
+
123
+
124
+ class PipelineFunctionAggregationTypedDict(TypedDict):
125
+ id: PipelineFunctionAggregationID
126
+ r"""Function ID"""
127
+ conf: PipelineFunctionAggregationConfTypedDict
128
+ filter_: NotRequired[str]
129
+ r"""Filter that selects data to be fed through this Function"""
130
+ description: NotRequired[str]
131
+ r"""Simple description of this step"""
132
+ disabled: NotRequired[bool]
133
+ r"""If true, data will not be pushed through this function"""
134
+ final: NotRequired[bool]
135
+ r"""If enabled, stops the results of this Function from being passed to the downstream Functions"""
136
+ group_id: NotRequired[str]
137
+ r"""Group ID"""
138
+
139
+
140
+ class PipelineFunctionAggregation(BaseModel):
141
+ id: PipelineFunctionAggregationID
142
+ r"""Function ID"""
143
+
144
+ conf: PipelineFunctionAggregationConf
145
+
146
+ filter_: Annotated[Optional[str], pydantic.Field(alias="filter")] = "true"
147
+ r"""Filter that selects data to be fed through this Function"""
148
+
149
+ description: Optional[str] = None
150
+ r"""Simple description of this step"""
151
+
152
+ disabled: Optional[bool] = None
153
+ r"""If true, data will not be pushed through this function"""
154
+
155
+ final: Optional[bool] = None
156
+ r"""If enabled, stops the results of this Function from being passed to the downstream Functions"""
157
+
158
+ group_id: Annotated[Optional[str], pydantic.Field(alias="groupId")] = None
159
+ r"""Group ID"""
@@ -0,0 +1,56 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .functionconfschemaautotimestamp import (
5
+ FunctionConfSchemaAutoTimestamp,
6
+ FunctionConfSchemaAutoTimestampTypedDict,
7
+ )
8
+ from cribl_control_plane.types import BaseModel
9
+ from enum import Enum
10
+ import pydantic
11
+ from typing import Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class PipelineFunctionAutoTimestampID(str, Enum):
16
+ r"""Function ID"""
17
+
18
+ AUTO_TIMESTAMP = "auto_timestamp"
19
+
20
+
21
+ class PipelineFunctionAutoTimestampTypedDict(TypedDict):
22
+ id: PipelineFunctionAutoTimestampID
23
+ r"""Function ID"""
24
+ conf: FunctionConfSchemaAutoTimestampTypedDict
25
+ filter_: NotRequired[str]
26
+ r"""Filter that selects data to be fed through this Function"""
27
+ description: NotRequired[str]
28
+ r"""Simple description of this step"""
29
+ disabled: NotRequired[bool]
30
+ r"""If true, data will not be pushed through this function"""
31
+ final: NotRequired[bool]
32
+ r"""If enabled, stops the results of this Function from being passed to the downstream Functions"""
33
+ group_id: NotRequired[str]
34
+ r"""Group ID"""
35
+
36
+
37
+ class PipelineFunctionAutoTimestamp(BaseModel):
38
+ id: PipelineFunctionAutoTimestampID
39
+ r"""Function ID"""
40
+
41
+ conf: FunctionConfSchemaAutoTimestamp
42
+
43
+ filter_: Annotated[Optional[str], pydantic.Field(alias="filter")] = "true"
44
+ r"""Filter that selects data to be fed through this Function"""
45
+
46
+ description: Optional[str] = None
47
+ r"""Simple description of this step"""
48
+
49
+ disabled: Optional[bool] = None
50
+ r"""If true, data will not be pushed through this function"""
51
+
52
+ final: Optional[bool] = None
53
+ r"""If enabled, stops the results of this Function from being passed to the downstream Functions"""
54
+
55
+ group_id: Annotated[Optional[str], pydantic.Field(alias="groupId")] = None
56
+ r"""Group ID"""
@@ -0,0 +1,96 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .functionconfschemacef import (
5
+ FunctionConfSchemaCef,
6
+ FunctionConfSchemaCefInput,
7
+ FunctionConfSchemaCefInputTypedDict,
8
+ FunctionConfSchemaCefTypedDict,
9
+ )
10
+ from cribl_control_plane.types import BaseModel
11
+ from enum import Enum
12
+ import pydantic
13
+ from typing import Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class PipelineFunctionCefID(str, Enum):
18
+ r"""Function ID"""
19
+
20
+ CEF = "cef"
21
+
22
+
23
+ class PipelineFunctionCefTypedDict(TypedDict):
24
+ id: PipelineFunctionCefID
25
+ r"""Function ID"""
26
+ conf: FunctionConfSchemaCefTypedDict
27
+ filter_: NotRequired[str]
28
+ r"""Filter that selects data to be fed through this Function"""
29
+ description: NotRequired[str]
30
+ r"""Simple description of this step"""
31
+ disabled: NotRequired[bool]
32
+ r"""If true, data will not be pushed through this function"""
33
+ final: NotRequired[bool]
34
+ r"""If enabled, stops the results of this Function from being passed to the downstream Functions"""
35
+ group_id: NotRequired[str]
36
+ r"""Group ID"""
37
+
38
+
39
+ class PipelineFunctionCef(BaseModel):
40
+ id: PipelineFunctionCefID
41
+ r"""Function ID"""
42
+
43
+ conf: FunctionConfSchemaCef
44
+
45
+ filter_: Annotated[Optional[str], pydantic.Field(alias="filter")] = "true"
46
+ r"""Filter that selects data to be fed through this Function"""
47
+
48
+ description: Optional[str] = None
49
+ r"""Simple description of this step"""
50
+
51
+ disabled: Optional[bool] = None
52
+ r"""If true, data will not be pushed through this function"""
53
+
54
+ final: Optional[bool] = None
55
+ r"""If enabled, stops the results of this Function from being passed to the downstream Functions"""
56
+
57
+ group_id: Annotated[Optional[str], pydantic.Field(alias="groupId")] = None
58
+ r"""Group ID"""
59
+
60
+
61
+ class PipelineFunctionCefInputTypedDict(TypedDict):
62
+ id: PipelineFunctionCefID
63
+ r"""Function ID"""
64
+ conf: FunctionConfSchemaCefInputTypedDict
65
+ filter_: NotRequired[str]
66
+ r"""Filter that selects data to be fed through this Function"""
67
+ description: NotRequired[str]
68
+ r"""Simple description of this step"""
69
+ disabled: NotRequired[bool]
70
+ r"""If true, data will not be pushed through this function"""
71
+ final: NotRequired[bool]
72
+ r"""If enabled, stops the results of this Function from being passed to the downstream Functions"""
73
+ group_id: NotRequired[str]
74
+ r"""Group ID"""
75
+
76
+
77
+ class PipelineFunctionCefInput(BaseModel):
78
+ id: PipelineFunctionCefID
79
+ r"""Function ID"""
80
+
81
+ conf: FunctionConfSchemaCefInput
82
+
83
+ filter_: Annotated[Optional[str], pydantic.Field(alias="filter")] = "true"
84
+ r"""Filter that selects data to be fed through this Function"""
85
+
86
+ description: Optional[str] = None
87
+ r"""Simple description of this step"""
88
+
89
+ disabled: Optional[bool] = None
90
+ r"""If true, data will not be pushed through this function"""
91
+
92
+ final: Optional[bool] = None
93
+ r"""If enabled, stops the results of this Function from being passed to the downstream Functions"""
94
+
95
+ group_id: Annotated[Optional[str], pydantic.Field(alias="groupId")] = None
96
+ r"""Group ID"""