cribl-control-plane 0.0.50rc1__py3-none-any.whl → 0.0.51__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cribl-control-plane might be problematic. Click here for more details.
- cribl_control_plane/_version.py +6 -4
- cribl_control_plane/errors/healthstatus_error.py +2 -8
- cribl_control_plane/health.py +2 -6
- cribl_control_plane/httpclient.py +0 -1
- cribl_control_plane/models/__init__.py +4 -21
- cribl_control_plane/models/appmode.py +1 -2
- cribl_control_plane/models/cacheconnection.py +2 -10
- cribl_control_plane/models/cacheconnectionbackfillstatus.py +1 -2
- cribl_control_plane/models/cloudprovider.py +1 -2
- cribl_control_plane/models/configgroup.py +2 -7
- cribl_control_plane/models/configgroupcloud.py +2 -6
- cribl_control_plane/models/createconfiggroupbyproductop.py +2 -8
- cribl_control_plane/models/createinputhectokenbyidop.py +5 -6
- cribl_control_plane/models/createversionpushop.py +5 -5
- cribl_control_plane/models/createversionundoop.py +3 -3
- cribl_control_plane/models/cribllakedataset.py +2 -8
- cribl_control_plane/models/datasetmetadata.py +2 -8
- cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +2 -7
- cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +2 -4
- cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +2 -4
- cribl_control_plane/models/getconfiggroupbyproductandidop.py +1 -3
- cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +2 -7
- cribl_control_plane/models/getsummaryop.py +2 -7
- cribl_control_plane/models/getversionshowop.py +5 -6
- cribl_control_plane/models/gitinfo.py +3 -14
- cribl_control_plane/models/hbcriblinfo.py +1 -11
- cribl_control_plane/models/healthstatus.py +4 -7
- cribl_control_plane/models/inputappscope.py +14 -34
- cribl_control_plane/models/inputazureblob.py +6 -17
- cribl_control_plane/models/inputcollection.py +4 -11
- cribl_control_plane/models/inputconfluentcloud.py +20 -47
- cribl_control_plane/models/inputcribl.py +4 -11
- cribl_control_plane/models/inputcriblhttp.py +8 -23
- cribl_control_plane/models/inputcribllakehttp.py +10 -22
- cribl_control_plane/models/inputcriblmetrics.py +4 -12
- cribl_control_plane/models/inputcribltcp.py +8 -23
- cribl_control_plane/models/inputcrowdstrike.py +10 -26
- cribl_control_plane/models/inputdatadogagent.py +8 -24
- cribl_control_plane/models/inputdatagen.py +4 -11
- cribl_control_plane/models/inputedgeprometheus.py +24 -58
- cribl_control_plane/models/inputelastic.py +14 -40
- cribl_control_plane/models/inputeventhub.py +6 -15
- cribl_control_plane/models/inputexec.py +6 -14
- cribl_control_plane/models/inputfile.py +6 -15
- cribl_control_plane/models/inputfirehose.py +8 -23
- cribl_control_plane/models/inputgooglepubsub.py +6 -19
- cribl_control_plane/models/inputgrafana.py +24 -67
- cribl_control_plane/models/inputhttp.py +8 -23
- cribl_control_plane/models/inputhttpraw.py +8 -23
- cribl_control_plane/models/inputjournalfiles.py +4 -12
- cribl_control_plane/models/inputkafka.py +16 -46
- cribl_control_plane/models/inputkinesis.py +14 -38
- cribl_control_plane/models/inputkubeevents.py +4 -11
- cribl_control_plane/models/inputkubelogs.py +8 -16
- cribl_control_plane/models/inputkubemetrics.py +8 -16
- cribl_control_plane/models/inputloki.py +10 -29
- cribl_control_plane/models/inputmetrics.py +8 -23
- cribl_control_plane/models/inputmodeldriventelemetry.py +10 -32
- cribl_control_plane/models/inputmsk.py +18 -53
- cribl_control_plane/models/inputnetflow.py +4 -11
- cribl_control_plane/models/inputoffice365mgmt.py +14 -33
- cribl_control_plane/models/inputoffice365msgtrace.py +16 -35
- cribl_control_plane/models/inputoffice365service.py +16 -35
- cribl_control_plane/models/inputopentelemetry.py +16 -38
- cribl_control_plane/models/inputprometheus.py +18 -50
- cribl_control_plane/models/inputprometheusrw.py +10 -30
- cribl_control_plane/models/inputrawudp.py +4 -11
- cribl_control_plane/models/inputs3.py +8 -21
- cribl_control_plane/models/inputs3inventory.py +10 -26
- cribl_control_plane/models/inputsecuritylake.py +10 -27
- cribl_control_plane/models/inputsnmp.py +6 -16
- cribl_control_plane/models/inputsplunk.py +12 -33
- cribl_control_plane/models/inputsplunkhec.py +10 -29
- cribl_control_plane/models/inputsplunksearch.py +14 -33
- cribl_control_plane/models/inputsqs.py +10 -27
- cribl_control_plane/models/inputsyslog.py +16 -43
- cribl_control_plane/models/inputsystemmetrics.py +24 -48
- cribl_control_plane/models/inputsystemstate.py +8 -16
- cribl_control_plane/models/inputtcp.py +10 -29
- cribl_control_plane/models/inputtcpjson.py +10 -29
- cribl_control_plane/models/inputwef.py +14 -37
- cribl_control_plane/models/inputwindowsmetrics.py +24 -44
- cribl_control_plane/models/inputwineventlogs.py +10 -20
- cribl_control_plane/models/inputwiz.py +8 -21
- cribl_control_plane/models/inputwizwebhook.py +8 -23
- cribl_control_plane/models/inputzscalerhec.py +10 -29
- cribl_control_plane/models/jobinfo.py +1 -4
- cribl_control_plane/models/lakehouseconnectiontype.py +1 -2
- cribl_control_plane/models/listconfiggroupbyproductop.py +1 -3
- cribl_control_plane/models/masterworkerentry.py +2 -7
- cribl_control_plane/models/nodeactiveupgradestatus.py +1 -2
- cribl_control_plane/models/nodefailedupgradestatus.py +1 -2
- cribl_control_plane/models/nodeprovidedinfo.py +1 -4
- cribl_control_plane/models/nodeskippedupgradestatus.py +1 -2
- cribl_control_plane/models/nodeupgradestate.py +1 -2
- cribl_control_plane/models/nodeupgradestatus.py +5 -13
- cribl_control_plane/models/outputazureblob.py +18 -48
- cribl_control_plane/models/outputazuredataexplorer.py +28 -73
- cribl_control_plane/models/outputazureeventhub.py +18 -40
- cribl_control_plane/models/outputazurelogs.py +12 -35
- cribl_control_plane/models/outputclickhouse.py +20 -55
- cribl_control_plane/models/outputcloudwatch.py +10 -29
- cribl_control_plane/models/outputconfluentcloud.py +32 -77
- cribl_control_plane/models/outputcriblhttp.py +16 -44
- cribl_control_plane/models/outputcribllake.py +16 -46
- cribl_control_plane/models/outputcribltcp.py +18 -45
- cribl_control_plane/models/outputcrowdstrikenextgensiem.py +14 -49
- cribl_control_plane/models/outputdatadog.py +20 -48
- cribl_control_plane/models/outputdataset.py +18 -46
- cribl_control_plane/models/outputdiskspool.py +2 -7
- cribl_control_plane/models/outputdls3.py +24 -68
- cribl_control_plane/models/outputdynatracehttp.py +20 -53
- cribl_control_plane/models/outputdynatraceotlp.py +22 -55
- cribl_control_plane/models/outputelastic.py +18 -43
- cribl_control_plane/models/outputelasticcloud.py +12 -36
- cribl_control_plane/models/outputexabeam.py +10 -29
- cribl_control_plane/models/outputfilesystem.py +14 -39
- cribl_control_plane/models/outputgooglechronicle.py +16 -50
- cribl_control_plane/models/outputgooglecloudlogging.py +18 -50
- cribl_control_plane/models/outputgooglecloudstorage.py +24 -66
- cribl_control_plane/models/outputgooglepubsub.py +10 -31
- cribl_control_plane/models/outputgrafanacloud.py +32 -97
- cribl_control_plane/models/outputgraphite.py +14 -31
- cribl_control_plane/models/outputhoneycomb.py +12 -35
- cribl_control_plane/models/outputhumiohec.py +16 -43
- cribl_control_plane/models/outputinfluxdb.py +16 -42
- cribl_control_plane/models/outputkafka.py +28 -74
- cribl_control_plane/models/outputkinesis.py +16 -40
- cribl_control_plane/models/outputloki.py +16 -41
- cribl_control_plane/models/outputminio.py +24 -65
- cribl_control_plane/models/outputmsk.py +30 -82
- cribl_control_plane/models/outputnewrelic.py +18 -43
- cribl_control_plane/models/outputnewrelicevents.py +14 -41
- cribl_control_plane/models/outputopentelemetry.py +26 -67
- cribl_control_plane/models/outputprometheus.py +12 -35
- cribl_control_plane/models/outputring.py +8 -19
- cribl_control_plane/models/outputs3.py +26 -68
- cribl_control_plane/models/outputsecuritylake.py +18 -52
- cribl_control_plane/models/outputsentinel.py +18 -45
- cribl_control_plane/models/outputsentineloneaisiem.py +18 -50
- cribl_control_plane/models/outputservicenow.py +24 -60
- cribl_control_plane/models/outputsignalfx.py +14 -37
- cribl_control_plane/models/outputsns.py +14 -36
- cribl_control_plane/models/outputsplunk.py +24 -60
- cribl_control_plane/models/outputsplunkhec.py +12 -35
- cribl_control_plane/models/outputsplunklb.py +30 -77
- cribl_control_plane/models/outputsqs.py +16 -41
- cribl_control_plane/models/outputstatsd.py +14 -30
- cribl_control_plane/models/outputstatsdext.py +12 -29
- cribl_control_plane/models/outputsumologic.py +12 -35
- cribl_control_plane/models/outputsyslog.py +24 -58
- cribl_control_plane/models/outputtcpjson.py +20 -52
- cribl_control_plane/models/outputwavefront.py +12 -35
- cribl_control_plane/models/outputwebhook.py +22 -58
- cribl_control_plane/models/outputxsiam.py +14 -35
- cribl_control_plane/models/packinfo.py +0 -3
- cribl_control_plane/models/packinstallinfo.py +0 -3
- cribl_control_plane/models/productscore.py +1 -2
- cribl_control_plane/models/rbacresource.py +1 -2
- cribl_control_plane/models/resourcepolicy.py +2 -4
- cribl_control_plane/models/runnablejobcollection.py +13 -30
- cribl_control_plane/models/runnablejobexecutor.py +4 -13
- cribl_control_plane/models/runnablejobscheduledsearch.py +2 -7
- cribl_control_plane/models/updateconfiggroupbyproductandidop.py +2 -8
- cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +2 -8
- cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +5 -6
- cribl_control_plane/models/workertypes.py +1 -2
- {cribl_control_plane-0.0.50rc1.dist-info → cribl_control_plane-0.0.51.dist-info}/METADATA +14 -5
- cribl_control_plane-0.0.51.dist-info/RECORD +325 -0
- cribl_control_plane/models/error.py +0 -16
- cribl_control_plane/models/gethealthinfoop.py +0 -17
- cribl_control_plane/models/gitshowresult.py +0 -19
- cribl_control_plane-0.0.50rc1.dist-info/RECORD +0 -328
- {cribl_control_plane-0.0.50rc1.dist-info → cribl_control_plane-0.0.51.dist-info}/WHEEL +0 -0
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from cribl_control_plane import utils
|
|
5
4
|
from cribl_control_plane.types import BaseModel
|
|
6
|
-
from cribl_control_plane.utils import validate_open_enum
|
|
7
5
|
from enum import Enum
|
|
8
6
|
import pydantic
|
|
9
|
-
from pydantic.functional_validators import PlainValidator
|
|
10
7
|
from typing import Any, List, Optional
|
|
11
8
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
9
|
|
|
@@ -26,14 +23,14 @@ class InputMetricsConnection(BaseModel):
|
|
|
26
23
|
pipeline: Optional[str] = None
|
|
27
24
|
|
|
28
25
|
|
|
29
|
-
class InputMetricsMode(str, Enum
|
|
26
|
+
class InputMetricsMode(str, Enum):
|
|
30
27
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
31
28
|
|
|
32
29
|
SMART = "smart"
|
|
33
30
|
ALWAYS = "always"
|
|
34
31
|
|
|
35
32
|
|
|
36
|
-
class InputMetricsCompression(str, Enum
|
|
33
|
+
class InputMetricsCompression(str, Enum):
|
|
37
34
|
r"""Codec to use to compress the persisted data"""
|
|
38
35
|
|
|
39
36
|
NONE = "none"
|
|
@@ -67,9 +64,7 @@ class InputMetricsPqTypedDict(TypedDict):
|
|
|
67
64
|
|
|
68
65
|
|
|
69
66
|
class InputMetricsPq(BaseModel):
|
|
70
|
-
mode:
|
|
71
|
-
Optional[InputMetricsMode], PlainValidator(validate_open_enum(False))
|
|
72
|
-
] = InputMetricsMode.ALWAYS
|
|
67
|
+
mode: Optional[InputMetricsMode] = InputMetricsMode.ALWAYS
|
|
73
68
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
74
69
|
|
|
75
70
|
max_buffer_size: Annotated[
|
|
@@ -93,9 +88,7 @@ class InputMetricsPq(BaseModel):
|
|
|
93
88
|
path: Optional[str] = "$CRIBL_HOME/state/queues"
|
|
94
89
|
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
|
|
95
90
|
|
|
96
|
-
compress:
|
|
97
|
-
Optional[InputMetricsCompression], PlainValidator(validate_open_enum(False))
|
|
98
|
-
] = InputMetricsCompression.NONE
|
|
91
|
+
compress: Optional[InputMetricsCompression] = InputMetricsCompression.NONE
|
|
99
92
|
r"""Codec to use to compress the persisted data"""
|
|
100
93
|
|
|
101
94
|
pq_controls: Annotated[
|
|
@@ -103,14 +96,14 @@ class InputMetricsPq(BaseModel):
|
|
|
103
96
|
] = None
|
|
104
97
|
|
|
105
98
|
|
|
106
|
-
class InputMetricsMinimumTLSVersion(str, Enum
|
|
99
|
+
class InputMetricsMinimumTLSVersion(str, Enum):
|
|
107
100
|
TL_SV1 = "TLSv1"
|
|
108
101
|
TL_SV1_1 = "TLSv1.1"
|
|
109
102
|
TL_SV1_2 = "TLSv1.2"
|
|
110
103
|
TL_SV1_3 = "TLSv1.3"
|
|
111
104
|
|
|
112
105
|
|
|
113
|
-
class InputMetricsMaximumTLSVersion(str, Enum
|
|
106
|
+
class InputMetricsMaximumTLSVersion(str, Enum):
|
|
114
107
|
TL_SV1 = "TLSv1"
|
|
115
108
|
TL_SV1_1 = "TLSv1.1"
|
|
116
109
|
TL_SV1_2 = "TLSv1.2"
|
|
@@ -169,19 +162,11 @@ class InputMetricsTLSSettingsServerSide(BaseModel):
|
|
|
169
162
|
] = None
|
|
170
163
|
|
|
171
164
|
min_version: Annotated[
|
|
172
|
-
|
|
173
|
-
Optional[InputMetricsMinimumTLSVersion],
|
|
174
|
-
PlainValidator(validate_open_enum(False)),
|
|
175
|
-
],
|
|
176
|
-
pydantic.Field(alias="minVersion"),
|
|
165
|
+
Optional[InputMetricsMinimumTLSVersion], pydantic.Field(alias="minVersion")
|
|
177
166
|
] = None
|
|
178
167
|
|
|
179
168
|
max_version: Annotated[
|
|
180
|
-
|
|
181
|
-
Optional[InputMetricsMaximumTLSVersion],
|
|
182
|
-
PlainValidator(validate_open_enum(False)),
|
|
183
|
-
],
|
|
184
|
-
pydantic.Field(alias="maxVersion"),
|
|
169
|
+
Optional[InputMetricsMaximumTLSVersion], pydantic.Field(alias="maxVersion")
|
|
185
170
|
] = None
|
|
186
171
|
|
|
187
172
|
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from cribl_control_plane import utils
|
|
5
4
|
from cribl_control_plane.types import BaseModel
|
|
6
|
-
from cribl_control_plane.utils import validate_open_enum
|
|
7
5
|
from enum import Enum
|
|
8
6
|
import pydantic
|
|
9
|
-
from pydantic.functional_validators import PlainValidator
|
|
10
7
|
from typing import Any, List, Optional
|
|
11
8
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
9
|
|
|
@@ -26,14 +23,14 @@ class InputModelDrivenTelemetryConnection(BaseModel):
|
|
|
26
23
|
pipeline: Optional[str] = None
|
|
27
24
|
|
|
28
25
|
|
|
29
|
-
class InputModelDrivenTelemetryMode(str, Enum
|
|
26
|
+
class InputModelDrivenTelemetryMode(str, Enum):
|
|
30
27
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
31
28
|
|
|
32
29
|
SMART = "smart"
|
|
33
30
|
ALWAYS = "always"
|
|
34
31
|
|
|
35
32
|
|
|
36
|
-
class InputModelDrivenTelemetryCompression(str, Enum
|
|
33
|
+
class InputModelDrivenTelemetryCompression(str, Enum):
|
|
37
34
|
r"""Codec to use to compress the persisted data"""
|
|
38
35
|
|
|
39
36
|
NONE = "none"
|
|
@@ -67,10 +64,7 @@ class InputModelDrivenTelemetryPqTypedDict(TypedDict):
|
|
|
67
64
|
|
|
68
65
|
|
|
69
66
|
class InputModelDrivenTelemetryPq(BaseModel):
|
|
70
|
-
mode:
|
|
71
|
-
Optional[InputModelDrivenTelemetryMode],
|
|
72
|
-
PlainValidator(validate_open_enum(False)),
|
|
73
|
-
] = InputModelDrivenTelemetryMode.ALWAYS
|
|
67
|
+
mode: Optional[InputModelDrivenTelemetryMode] = InputModelDrivenTelemetryMode.ALWAYS
|
|
74
68
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
75
69
|
|
|
76
70
|
max_buffer_size: Annotated[
|
|
@@ -94,10 +88,9 @@ class InputModelDrivenTelemetryPq(BaseModel):
|
|
|
94
88
|
path: Optional[str] = "$CRIBL_HOME/state/queues"
|
|
95
89
|
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
|
|
96
90
|
|
|
97
|
-
compress:
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
] = InputModelDrivenTelemetryCompression.NONE
|
|
91
|
+
compress: Optional[InputModelDrivenTelemetryCompression] = (
|
|
92
|
+
InputModelDrivenTelemetryCompression.NONE
|
|
93
|
+
)
|
|
101
94
|
r"""Codec to use to compress the persisted data"""
|
|
102
95
|
|
|
103
96
|
pq_controls: Annotated[
|
|
@@ -106,18 +99,14 @@ class InputModelDrivenTelemetryPq(BaseModel):
|
|
|
106
99
|
] = None
|
|
107
100
|
|
|
108
101
|
|
|
109
|
-
class InputModelDrivenTelemetryMinimumTLSVersion(
|
|
110
|
-
str, Enum, metaclass=utils.OpenEnumMeta
|
|
111
|
-
):
|
|
102
|
+
class InputModelDrivenTelemetryMinimumTLSVersion(str, Enum):
|
|
112
103
|
TL_SV1 = "TLSv1"
|
|
113
104
|
TL_SV1_1 = "TLSv1.1"
|
|
114
105
|
TL_SV1_2 = "TLSv1.2"
|
|
115
106
|
TL_SV1_3 = "TLSv1.3"
|
|
116
107
|
|
|
117
108
|
|
|
118
|
-
class InputModelDrivenTelemetryMaximumTLSVersion(
|
|
119
|
-
str, Enum, metaclass=utils.OpenEnumMeta
|
|
120
|
-
):
|
|
109
|
+
class InputModelDrivenTelemetryMaximumTLSVersion(str, Enum):
|
|
121
110
|
TL_SV1 = "TLSv1"
|
|
122
111
|
TL_SV1_1 = "TLSv1.1"
|
|
123
112
|
TL_SV1_2 = "TLSv1.2"
|
|
@@ -130,8 +119,6 @@ class InputModelDrivenTelemetryTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
130
119
|
r"""The name of the predefined certificate"""
|
|
131
120
|
priv_key_path: NotRequired[str]
|
|
132
121
|
r"""Path on server containing the private key to use. PEM format. Can reference $ENV_VARS."""
|
|
133
|
-
passphrase: NotRequired[str]
|
|
134
|
-
r"""Passphrase to use to decrypt private key"""
|
|
135
122
|
cert_path: NotRequired[str]
|
|
136
123
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
137
124
|
ca_path: NotRequired[str]
|
|
@@ -155,9 +142,6 @@ class InputModelDrivenTelemetryTLSSettingsServerSide(BaseModel):
|
|
|
155
142
|
priv_key_path: Annotated[Optional[str], pydantic.Field(alias="privKeyPath")] = None
|
|
156
143
|
r"""Path on server containing the private key to use. PEM format. Can reference $ENV_VARS."""
|
|
157
144
|
|
|
158
|
-
passphrase: Optional[str] = None
|
|
159
|
-
r"""Passphrase to use to decrypt private key"""
|
|
160
|
-
|
|
161
145
|
cert_path: Annotated[Optional[str], pydantic.Field(alias="certPath")] = None
|
|
162
146
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
163
147
|
|
|
@@ -176,18 +160,12 @@ class InputModelDrivenTelemetryTLSSettingsServerSide(BaseModel):
|
|
|
176
160
|
] = None
|
|
177
161
|
|
|
178
162
|
min_version: Annotated[
|
|
179
|
-
|
|
180
|
-
Optional[InputModelDrivenTelemetryMinimumTLSVersion],
|
|
181
|
-
PlainValidator(validate_open_enum(False)),
|
|
182
|
-
],
|
|
163
|
+
Optional[InputModelDrivenTelemetryMinimumTLSVersion],
|
|
183
164
|
pydantic.Field(alias="minVersion"),
|
|
184
165
|
] = None
|
|
185
166
|
|
|
186
167
|
max_version: Annotated[
|
|
187
|
-
|
|
188
|
-
Optional[InputModelDrivenTelemetryMaximumTLSVersion],
|
|
189
|
-
PlainValidator(validate_open_enum(False)),
|
|
190
|
-
],
|
|
168
|
+
Optional[InputModelDrivenTelemetryMaximumTLSVersion],
|
|
191
169
|
pydantic.Field(alias="maxVersion"),
|
|
192
170
|
] = None
|
|
193
171
|
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from cribl_control_plane import utils
|
|
5
4
|
from cribl_control_plane.types import BaseModel
|
|
6
|
-
from cribl_control_plane.utils import validate_open_enum
|
|
7
5
|
from enum import Enum
|
|
8
6
|
import pydantic
|
|
9
|
-
from pydantic.functional_validators import PlainValidator
|
|
10
7
|
from typing import List, Optional
|
|
11
8
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
9
|
|
|
@@ -26,14 +23,14 @@ class InputMskConnection(BaseModel):
|
|
|
26
23
|
pipeline: Optional[str] = None
|
|
27
24
|
|
|
28
25
|
|
|
29
|
-
class InputMskMode(str, Enum
|
|
26
|
+
class InputMskMode(str, Enum):
|
|
30
27
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
31
28
|
|
|
32
29
|
SMART = "smart"
|
|
33
30
|
ALWAYS = "always"
|
|
34
31
|
|
|
35
32
|
|
|
36
|
-
class InputMskCompression(str, Enum
|
|
33
|
+
class InputMskCompression(str, Enum):
|
|
37
34
|
r"""Codec to use to compress the persisted data"""
|
|
38
35
|
|
|
39
36
|
NONE = "none"
|
|
@@ -67,9 +64,7 @@ class InputMskPqTypedDict(TypedDict):
|
|
|
67
64
|
|
|
68
65
|
|
|
69
66
|
class InputMskPq(BaseModel):
|
|
70
|
-
mode:
|
|
71
|
-
Optional[InputMskMode], PlainValidator(validate_open_enum(False))
|
|
72
|
-
] = InputMskMode.ALWAYS
|
|
67
|
+
mode: Optional[InputMskMode] = InputMskMode.ALWAYS
|
|
73
68
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
74
69
|
|
|
75
70
|
max_buffer_size: Annotated[
|
|
@@ -93,9 +88,7 @@ class InputMskPq(BaseModel):
|
|
|
93
88
|
path: Optional[str] = "$CRIBL_HOME/state/queues"
|
|
94
89
|
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
|
|
95
90
|
|
|
96
|
-
compress:
|
|
97
|
-
Optional[InputMskCompression], PlainValidator(validate_open_enum(False))
|
|
98
|
-
] = InputMskCompression.NONE
|
|
91
|
+
compress: Optional[InputMskCompression] = InputMskCompression.NONE
|
|
99
92
|
r"""Codec to use to compress the persisted data"""
|
|
100
93
|
|
|
101
94
|
pq_controls: Annotated[
|
|
@@ -116,7 +109,7 @@ class InputMskMetadatum(BaseModel):
|
|
|
116
109
|
r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
|
|
117
110
|
|
|
118
111
|
|
|
119
|
-
class InputMskSchemaType(str, Enum
|
|
112
|
+
class InputMskSchemaType(str, Enum):
|
|
120
113
|
r"""The schema format used to encode and decode event data"""
|
|
121
114
|
|
|
122
115
|
AVRO = "avro"
|
|
@@ -142,18 +135,14 @@ class InputMskAuth(BaseModel):
|
|
|
142
135
|
r"""Select or create a secret that references your credentials"""
|
|
143
136
|
|
|
144
137
|
|
|
145
|
-
class InputMskKafkaSchemaRegistryMinimumTLSVersion(
|
|
146
|
-
str, Enum, metaclass=utils.OpenEnumMeta
|
|
147
|
-
):
|
|
138
|
+
class InputMskKafkaSchemaRegistryMinimumTLSVersion(str, Enum):
|
|
148
139
|
TL_SV1 = "TLSv1"
|
|
149
140
|
TL_SV1_1 = "TLSv1.1"
|
|
150
141
|
TL_SV1_2 = "TLSv1.2"
|
|
151
142
|
TL_SV1_3 = "TLSv1.3"
|
|
152
143
|
|
|
153
144
|
|
|
154
|
-
class InputMskKafkaSchemaRegistryMaximumTLSVersion(
|
|
155
|
-
str, Enum, metaclass=utils.OpenEnumMeta
|
|
156
|
-
):
|
|
145
|
+
class InputMskKafkaSchemaRegistryMaximumTLSVersion(str, Enum):
|
|
157
146
|
TL_SV1 = "TLSv1"
|
|
158
147
|
TL_SV1_1 = "TLSv1.1"
|
|
159
148
|
TL_SV1_2 = "TLSv1.2"
|
|
@@ -213,18 +202,12 @@ class InputMskKafkaSchemaRegistryTLSSettingsClientSide(BaseModel):
|
|
|
213
202
|
r"""Passphrase to use to decrypt private key"""
|
|
214
203
|
|
|
215
204
|
min_version: Annotated[
|
|
216
|
-
|
|
217
|
-
Optional[InputMskKafkaSchemaRegistryMinimumTLSVersion],
|
|
218
|
-
PlainValidator(validate_open_enum(False)),
|
|
219
|
-
],
|
|
205
|
+
Optional[InputMskKafkaSchemaRegistryMinimumTLSVersion],
|
|
220
206
|
pydantic.Field(alias="minVersion"),
|
|
221
207
|
] = None
|
|
222
208
|
|
|
223
209
|
max_version: Annotated[
|
|
224
|
-
|
|
225
|
-
Optional[InputMskKafkaSchemaRegistryMaximumTLSVersion],
|
|
226
|
-
PlainValidator(validate_open_enum(False)),
|
|
227
|
-
],
|
|
210
|
+
Optional[InputMskKafkaSchemaRegistryMaximumTLSVersion],
|
|
228
211
|
pydantic.Field(alias="maxVersion"),
|
|
229
212
|
] = None
|
|
230
213
|
|
|
@@ -255,10 +238,7 @@ class InputMskKafkaSchemaRegistryAuthentication(BaseModel):
|
|
|
255
238
|
r"""URL for accessing the Confluent Schema Registry. Example: http://localhost:8081. To connect over TLS, use https instead of http."""
|
|
256
239
|
|
|
257
240
|
schema_type: Annotated[
|
|
258
|
-
|
|
259
|
-
Optional[InputMskSchemaType], PlainValidator(validate_open_enum(False))
|
|
260
|
-
],
|
|
261
|
-
pydantic.Field(alias="schemaType"),
|
|
241
|
+
Optional[InputMskSchemaType], pydantic.Field(alias="schemaType")
|
|
262
242
|
] = InputMskSchemaType.AVRO
|
|
263
243
|
r"""The schema format used to encode and decode event data"""
|
|
264
244
|
|
|
@@ -281,7 +261,7 @@ class InputMskKafkaSchemaRegistryAuthentication(BaseModel):
|
|
|
281
261
|
tls: Optional[InputMskKafkaSchemaRegistryTLSSettingsClientSide] = None
|
|
282
262
|
|
|
283
263
|
|
|
284
|
-
class InputMskAuthenticationMethod(str, Enum
|
|
264
|
+
class InputMskAuthenticationMethod(str, Enum):
|
|
285
265
|
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
286
266
|
|
|
287
267
|
AUTO = "auto"
|
|
@@ -289,21 +269,21 @@ class InputMskAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
289
269
|
SECRET = "secret"
|
|
290
270
|
|
|
291
271
|
|
|
292
|
-
class InputMskSignatureVersion(str, Enum
|
|
272
|
+
class InputMskSignatureVersion(str, Enum):
|
|
293
273
|
r"""Signature version to use for signing MSK cluster requests"""
|
|
294
274
|
|
|
295
275
|
V2 = "v2"
|
|
296
276
|
V4 = "v4"
|
|
297
277
|
|
|
298
278
|
|
|
299
|
-
class InputMskMinimumTLSVersion(str, Enum
|
|
279
|
+
class InputMskMinimumTLSVersion(str, Enum):
|
|
300
280
|
TL_SV1 = "TLSv1"
|
|
301
281
|
TL_SV1_1 = "TLSv1.1"
|
|
302
282
|
TL_SV1_2 = "TLSv1.2"
|
|
303
283
|
TL_SV1_3 = "TLSv1.3"
|
|
304
284
|
|
|
305
285
|
|
|
306
|
-
class InputMskMaximumTLSVersion(str, Enum
|
|
286
|
+
class InputMskMaximumTLSVersion(str, Enum):
|
|
307
287
|
TL_SV1 = "TLSv1"
|
|
308
288
|
TL_SV1_1 = "TLSv1.1"
|
|
309
289
|
TL_SV1_2 = "TLSv1.2"
|
|
@@ -363,19 +343,11 @@ class InputMskTLSSettingsClientSide(BaseModel):
|
|
|
363
343
|
r"""Passphrase to use to decrypt private key"""
|
|
364
344
|
|
|
365
345
|
min_version: Annotated[
|
|
366
|
-
|
|
367
|
-
Optional[InputMskMinimumTLSVersion],
|
|
368
|
-
PlainValidator(validate_open_enum(False)),
|
|
369
|
-
],
|
|
370
|
-
pydantic.Field(alias="minVersion"),
|
|
346
|
+
Optional[InputMskMinimumTLSVersion], pydantic.Field(alias="minVersion")
|
|
371
347
|
] = None
|
|
372
348
|
|
|
373
349
|
max_version: Annotated[
|
|
374
|
-
|
|
375
|
-
Optional[InputMskMaximumTLSVersion],
|
|
376
|
-
PlainValidator(validate_open_enum(False)),
|
|
377
|
-
],
|
|
378
|
-
pydantic.Field(alias="maxVersion"),
|
|
350
|
+
Optional[InputMskMaximumTLSVersion], pydantic.Field(alias="maxVersion")
|
|
379
351
|
] = None
|
|
380
352
|
|
|
381
353
|
|
|
@@ -597,10 +569,7 @@ class InputMsk(BaseModel):
|
|
|
597
569
|
r"""Specifies a time window during which @{product} can reauthenticate if needed. Creates the window measuring backward from the moment when credentials are set to expire."""
|
|
598
570
|
|
|
599
571
|
aws_authentication_method: Annotated[
|
|
600
|
-
|
|
601
|
-
Optional[InputMskAuthenticationMethod],
|
|
602
|
-
PlainValidator(validate_open_enum(False)),
|
|
603
|
-
],
|
|
572
|
+
Optional[InputMskAuthenticationMethod],
|
|
604
573
|
pydantic.Field(alias="awsAuthenticationMethod"),
|
|
605
574
|
] = InputMskAuthenticationMethod.AUTO
|
|
606
575
|
r"""AWS authentication method. Choose Auto to use IAM roles."""
|
|
@@ -613,11 +582,7 @@ class InputMsk(BaseModel):
|
|
|
613
582
|
r"""MSK cluster service endpoint. If empty, defaults to the AWS Region-specific endpoint. Otherwise, it must point to MSK cluster-compatible endpoint."""
|
|
614
583
|
|
|
615
584
|
signature_version: Annotated[
|
|
616
|
-
|
|
617
|
-
Optional[InputMskSignatureVersion],
|
|
618
|
-
PlainValidator(validate_open_enum(False)),
|
|
619
|
-
],
|
|
620
|
-
pydantic.Field(alias="signatureVersion"),
|
|
585
|
+
Optional[InputMskSignatureVersion], pydantic.Field(alias="signatureVersion")
|
|
621
586
|
] = InputMskSignatureVersion.V4
|
|
622
587
|
r"""Signature version to use for signing MSK cluster requests"""
|
|
623
588
|
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from cribl_control_plane import utils
|
|
5
4
|
from cribl_control_plane.types import BaseModel
|
|
6
|
-
from cribl_control_plane.utils import validate_open_enum
|
|
7
5
|
from enum import Enum
|
|
8
6
|
import pydantic
|
|
9
|
-
from pydantic.functional_validators import PlainValidator
|
|
10
7
|
from typing import List, Optional
|
|
11
8
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
9
|
|
|
@@ -26,14 +23,14 @@ class InputNetflowConnection(BaseModel):
|
|
|
26
23
|
pipeline: Optional[str] = None
|
|
27
24
|
|
|
28
25
|
|
|
29
|
-
class InputNetflowMode(str, Enum
|
|
26
|
+
class InputNetflowMode(str, Enum):
|
|
30
27
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
31
28
|
|
|
32
29
|
SMART = "smart"
|
|
33
30
|
ALWAYS = "always"
|
|
34
31
|
|
|
35
32
|
|
|
36
|
-
class InputNetflowCompression(str, Enum
|
|
33
|
+
class InputNetflowCompression(str, Enum):
|
|
37
34
|
r"""Codec to use to compress the persisted data"""
|
|
38
35
|
|
|
39
36
|
NONE = "none"
|
|
@@ -67,9 +64,7 @@ class InputNetflowPqTypedDict(TypedDict):
|
|
|
67
64
|
|
|
68
65
|
|
|
69
66
|
class InputNetflowPq(BaseModel):
|
|
70
|
-
mode:
|
|
71
|
-
Optional[InputNetflowMode], PlainValidator(validate_open_enum(False))
|
|
72
|
-
] = InputNetflowMode.ALWAYS
|
|
67
|
+
mode: Optional[InputNetflowMode] = InputNetflowMode.ALWAYS
|
|
73
68
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
74
69
|
|
|
75
70
|
max_buffer_size: Annotated[
|
|
@@ -93,9 +88,7 @@ class InputNetflowPq(BaseModel):
|
|
|
93
88
|
path: Optional[str] = "$CRIBL_HOME/state/queues"
|
|
94
89
|
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
|
|
95
90
|
|
|
96
|
-
compress:
|
|
97
|
-
Optional[InputNetflowCompression], PlainValidator(validate_open_enum(False))
|
|
98
|
-
] = InputNetflowCompression.NONE
|
|
91
|
+
compress: Optional[InputNetflowCompression] = InputNetflowCompression.NONE
|
|
99
92
|
r"""Codec to use to compress the persisted data"""
|
|
100
93
|
|
|
101
94
|
pq_controls: Annotated[
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from cribl_control_plane import utils
|
|
5
4
|
from cribl_control_plane.types import BaseModel
|
|
6
|
-
from cribl_control_plane.utils import validate_open_enum
|
|
7
5
|
from enum import Enum
|
|
8
6
|
import pydantic
|
|
9
|
-
from pydantic.functional_validators import PlainValidator
|
|
10
7
|
from typing import List, Optional
|
|
11
8
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
9
|
|
|
@@ -26,14 +23,14 @@ class InputOffice365MgmtConnection(BaseModel):
|
|
|
26
23
|
pipeline: Optional[str] = None
|
|
27
24
|
|
|
28
25
|
|
|
29
|
-
class InputOffice365MgmtMode(str, Enum
|
|
26
|
+
class InputOffice365MgmtMode(str, Enum):
|
|
30
27
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
31
28
|
|
|
32
29
|
SMART = "smart"
|
|
33
30
|
ALWAYS = "always"
|
|
34
31
|
|
|
35
32
|
|
|
36
|
-
class InputOffice365MgmtCompression(str, Enum
|
|
33
|
+
class InputOffice365MgmtCompression(str, Enum):
|
|
37
34
|
r"""Codec to use to compress the persisted data"""
|
|
38
35
|
|
|
39
36
|
NONE = "none"
|
|
@@ -67,9 +64,7 @@ class InputOffice365MgmtPqTypedDict(TypedDict):
|
|
|
67
64
|
|
|
68
65
|
|
|
69
66
|
class InputOffice365MgmtPq(BaseModel):
|
|
70
|
-
mode:
|
|
71
|
-
Optional[InputOffice365MgmtMode], PlainValidator(validate_open_enum(False))
|
|
72
|
-
] = InputOffice365MgmtMode.ALWAYS
|
|
67
|
+
mode: Optional[InputOffice365MgmtMode] = InputOffice365MgmtMode.ALWAYS
|
|
73
68
|
r"""With Smart mode, PQ will write events to the filesystem only when it detects backpressure from the processing engine. With Always On mode, PQ will always write events directly to the queue before forwarding them to the processing engine."""
|
|
74
69
|
|
|
75
70
|
max_buffer_size: Annotated[
|
|
@@ -93,10 +88,9 @@ class InputOffice365MgmtPq(BaseModel):
|
|
|
93
88
|
path: Optional[str] = "$CRIBL_HOME/state/queues"
|
|
94
89
|
r"""The location for the persistent queue files. To this field's value, the system will append: /<worker-id>/inputs/<input-id>"""
|
|
95
90
|
|
|
96
|
-
compress:
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
] = InputOffice365MgmtCompression.NONE
|
|
91
|
+
compress: Optional[InputOffice365MgmtCompression] = (
|
|
92
|
+
InputOffice365MgmtCompression.NONE
|
|
93
|
+
)
|
|
100
94
|
r"""Codec to use to compress the persisted data"""
|
|
101
95
|
|
|
102
96
|
pq_controls: Annotated[
|
|
@@ -104,7 +98,7 @@ class InputOffice365MgmtPq(BaseModel):
|
|
|
104
98
|
] = None
|
|
105
99
|
|
|
106
100
|
|
|
107
|
-
class InputOffice365MgmtSubscriptionPlan(str, Enum
|
|
101
|
+
class InputOffice365MgmtSubscriptionPlan(str, Enum):
|
|
108
102
|
r"""Office 365 subscription plan for your organization, typically Office 365 Enterprise"""
|
|
109
103
|
|
|
110
104
|
ENTERPRISE_GCC = "enterprise_gcc"
|
|
@@ -126,7 +120,7 @@ class InputOffice365MgmtMetadatum(BaseModel):
|
|
|
126
120
|
r"""JavaScript expression to compute field's value, enclosed in quotes or backticks. (Can evaluate to a constant.)"""
|
|
127
121
|
|
|
128
122
|
|
|
129
|
-
class InputOffice365MgmtLogLevel(str, Enum
|
|
123
|
+
class InputOffice365MgmtLogLevel(str, Enum):
|
|
130
124
|
r"""Collector runtime Log Level"""
|
|
131
125
|
|
|
132
126
|
ERROR = "error"
|
|
@@ -156,18 +150,14 @@ class InputOffice365MgmtContentConfig(BaseModel):
|
|
|
156
150
|
interval: Optional[float] = None
|
|
157
151
|
|
|
158
152
|
log_level: Annotated[
|
|
159
|
-
|
|
160
|
-
Optional[InputOffice365MgmtLogLevel],
|
|
161
|
-
PlainValidator(validate_open_enum(False)),
|
|
162
|
-
],
|
|
163
|
-
pydantic.Field(alias="logLevel"),
|
|
153
|
+
Optional[InputOffice365MgmtLogLevel], pydantic.Field(alias="logLevel")
|
|
164
154
|
] = None
|
|
165
155
|
r"""Collector runtime Log Level"""
|
|
166
156
|
|
|
167
157
|
enabled: Optional[bool] = None
|
|
168
158
|
|
|
169
159
|
|
|
170
|
-
class InputOffice365MgmtRetryType(str, Enum
|
|
160
|
+
class InputOffice365MgmtRetryType(str, Enum):
|
|
171
161
|
r"""The algorithm to use when performing HTTP retries"""
|
|
172
162
|
|
|
173
163
|
NONE = "none"
|
|
@@ -195,9 +185,7 @@ class InputOffice365MgmtRetryRulesTypedDict(TypedDict):
|
|
|
195
185
|
|
|
196
186
|
|
|
197
187
|
class InputOffice365MgmtRetryRules(BaseModel):
|
|
198
|
-
type:
|
|
199
|
-
Optional[InputOffice365MgmtRetryType], PlainValidator(validate_open_enum(False))
|
|
200
|
-
] = InputOffice365MgmtRetryType.BACKOFF
|
|
188
|
+
type: Optional[InputOffice365MgmtRetryType] = InputOffice365MgmtRetryType.BACKOFF
|
|
201
189
|
r"""The algorithm to use when performing HTTP retries"""
|
|
202
190
|
|
|
203
191
|
interval: Optional[float] = 1000
|
|
@@ -228,7 +216,7 @@ class InputOffice365MgmtRetryRules(BaseModel):
|
|
|
228
216
|
r"""Retry request when a connection reset (ECONNRESET) error occurs"""
|
|
229
217
|
|
|
230
218
|
|
|
231
|
-
class InputOffice365MgmtAuthenticationMethod(str, Enum
|
|
219
|
+
class InputOffice365MgmtAuthenticationMethod(str, Enum):
|
|
232
220
|
r"""Enter client secret directly, or select a stored secret"""
|
|
233
221
|
|
|
234
222
|
MANUAL = "manual"
|
|
@@ -326,11 +314,7 @@ class InputOffice365Mgmt(BaseModel):
|
|
|
326
314
|
pq: Optional[InputOffice365MgmtPq] = None
|
|
327
315
|
|
|
328
316
|
plan_type: Annotated[
|
|
329
|
-
|
|
330
|
-
Optional[InputOffice365MgmtSubscriptionPlan],
|
|
331
|
-
PlainValidator(validate_open_enum(False)),
|
|
332
|
-
],
|
|
333
|
-
pydantic.Field(alias="planType"),
|
|
317
|
+
Optional[InputOffice365MgmtSubscriptionPlan], pydantic.Field(alias="planType")
|
|
334
318
|
] = InputOffice365MgmtSubscriptionPlan.ENTERPRISE_GCC
|
|
335
319
|
r"""Office 365 subscription plan for your organization, typically Office 365 Enterprise"""
|
|
336
320
|
|
|
@@ -380,10 +364,7 @@ class InputOffice365Mgmt(BaseModel):
|
|
|
380
364
|
] = None
|
|
381
365
|
|
|
382
366
|
auth_type: Annotated[
|
|
383
|
-
|
|
384
|
-
Optional[InputOffice365MgmtAuthenticationMethod],
|
|
385
|
-
PlainValidator(validate_open_enum(False)),
|
|
386
|
-
],
|
|
367
|
+
Optional[InputOffice365MgmtAuthenticationMethod],
|
|
387
368
|
pydantic.Field(alias="authType"),
|
|
388
369
|
] = InputOffice365MgmtAuthenticationMethod.MANUAL
|
|
389
370
|
r"""Enter client secret directly, or select a stored secret"""
|