cribl-control-plane 0.2.1rc7__py3-none-any.whl → 0.3.0a1__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 +4 -4
- cribl_control_plane/errors/__init__.py +5 -8
- cribl_control_plane/errors/{healthserverstatus_error.py → healthstatus_error.py} +9 -10
- cribl_control_plane/groups_sdk.py +28 -52
- cribl_control_plane/health.py +16 -22
- cribl_control_plane/models/__init__.py +54 -217
- cribl_control_plane/models/appmode.py +14 -0
- cribl_control_plane/models/authtoken.py +1 -5
- cribl_control_plane/models/cacheconnection.py +0 -20
- cribl_control_plane/models/configgroup.py +7 -55
- cribl_control_plane/models/configgroupcloud.py +1 -11
- cribl_control_plane/models/createconfiggroupbyproductop.py +5 -17
- cribl_control_plane/models/createroutesappendbyidop.py +2 -2
- cribl_control_plane/models/createversionundoop.py +3 -3
- cribl_control_plane/models/cribllakedataset.py +1 -11
- cribl_control_plane/models/cribllakedatasetupdate.py +1 -11
- cribl_control_plane/models/datasetmetadata.py +1 -11
- cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +0 -11
- cribl_control_plane/models/deleteoutputpqbyidop.py +2 -2
- cribl_control_plane/models/distributedsummary.py +0 -6
- cribl_control_plane/models/error.py +16 -0
- cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +0 -20
- cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +0 -20
- cribl_control_plane/models/getconfiggroupbyproductandidop.py +0 -11
- cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +0 -11
- cribl_control_plane/models/gethealthinfoop.py +17 -0
- cribl_control_plane/models/getsummaryop.py +0 -11
- cribl_control_plane/models/hbcriblinfo.py +3 -24
- cribl_control_plane/models/{healthserverstatus.py → healthstatus.py} +8 -27
- cribl_control_plane/models/heartbeatmetadata.py +0 -3
- cribl_control_plane/models/input.py +78 -80
- cribl_control_plane/models/inputappscope.py +17 -80
- cribl_control_plane/models/inputazureblob.py +1 -33
- cribl_control_plane/models/inputcollection.py +1 -24
- cribl_control_plane/models/inputconfluentcloud.py +18 -195
- cribl_control_plane/models/inputcribl.py +1 -24
- cribl_control_plane/models/inputcriblhttp.py +17 -62
- cribl_control_plane/models/inputcribllakehttp.py +17 -62
- cribl_control_plane/models/inputcriblmetrics.py +1 -24
- cribl_control_plane/models/inputcribltcp.py +17 -62
- cribl_control_plane/models/inputcrowdstrike.py +1 -54
- cribl_control_plane/models/inputdatadogagent.py +17 -62
- cribl_control_plane/models/inputdatagen.py +1 -24
- cribl_control_plane/models/inputedgeprometheus.py +34 -147
- cribl_control_plane/models/inputelastic.py +27 -119
- cribl_control_plane/models/inputeventhub.py +1 -182
- cribl_control_plane/models/inputexec.py +1 -33
- cribl_control_plane/models/inputfile.py +3 -42
- cribl_control_plane/models/inputfirehose.py +17 -62
- cribl_control_plane/models/inputgooglepubsub.py +1 -36
- cribl_control_plane/models/inputgrafana.py +32 -157
- cribl_control_plane/models/inputhttp.py +17 -62
- cribl_control_plane/models/inputhttpraw.py +17 -62
- cribl_control_plane/models/inputjournalfiles.py +1 -24
- cribl_control_plane/models/inputkafka.py +17 -189
- cribl_control_plane/models/inputkinesis.py +1 -80
- cribl_control_plane/models/inputkubeevents.py +1 -24
- cribl_control_plane/models/inputkubelogs.py +1 -33
- cribl_control_plane/models/inputkubemetrics.py +1 -33
- cribl_control_plane/models/inputloki.py +17 -71
- cribl_control_plane/models/inputmetrics.py +17 -62
- cribl_control_plane/models/inputmodeldriventelemetry.py +17 -62
- cribl_control_plane/models/inputmsk.py +18 -81
- cribl_control_plane/models/inputnetflow.py +1 -24
- cribl_control_plane/models/inputoffice365mgmt.py +1 -67
- cribl_control_plane/models/inputoffice365msgtrace.py +1 -67
- cribl_control_plane/models/inputoffice365service.py +1 -67
- cribl_control_plane/models/inputopentelemetry.py +16 -92
- cribl_control_plane/models/inputprometheus.py +34 -138
- cribl_control_plane/models/inputprometheusrw.py +17 -71
- cribl_control_plane/models/inputrawudp.py +1 -24
- cribl_control_plane/models/inputs3.py +1 -45
- cribl_control_plane/models/inputs3inventory.py +1 -54
- cribl_control_plane/models/inputsecuritylake.py +1 -54
- cribl_control_plane/models/inputsnmp.py +1 -40
- cribl_control_plane/models/inputsplunk.py +17 -85
- cribl_control_plane/models/inputsplunkhec.py +16 -70
- cribl_control_plane/models/inputsplunksearch.py +1 -63
- cribl_control_plane/models/inputsqs.py +1 -56
- cribl_control_plane/models/inputsyslog.py +32 -121
- cribl_control_plane/models/inputsystemmetrics.py +9 -142
- cribl_control_plane/models/inputsystemstate.py +1 -33
- cribl_control_plane/models/inputtcp.py +17 -81
- cribl_control_plane/models/inputtcpjson.py +17 -71
- cribl_control_plane/models/inputwef.py +1 -71
- cribl_control_plane/models/inputwindowsmetrics.py +9 -129
- cribl_control_plane/models/inputwineventlogs.py +1 -60
- cribl_control_plane/models/inputwiz.py +1 -45
- cribl_control_plane/models/inputwizwebhook.py +17 -62
- cribl_control_plane/models/inputzscalerhec.py +16 -70
- cribl_control_plane/models/jobinfo.py +1 -4
- cribl_control_plane/models/jobstatus.py +3 -34
- cribl_control_plane/models/listconfiggroupbyproductop.py +0 -11
- cribl_control_plane/models/logininfo.py +3 -3
- cribl_control_plane/models/masterworkerentry.py +1 -11
- cribl_control_plane/models/nodeprovidedinfo.py +1 -11
- cribl_control_plane/models/nodeupgradestatus.py +0 -38
- cribl_control_plane/models/output.py +88 -93
- cribl_control_plane/models/outputazureblob.py +1 -110
- cribl_control_plane/models/outputazuredataexplorer.py +87 -452
- cribl_control_plane/models/outputazureeventhub.py +19 -281
- cribl_control_plane/models/outputazurelogs.py +19 -115
- cribl_control_plane/models/outputchronicle.py +19 -115
- cribl_control_plane/models/outputclickhouse.py +19 -155
- cribl_control_plane/models/outputcloudwatch.py +19 -106
- cribl_control_plane/models/outputconfluentcloud.py +38 -311
- cribl_control_plane/models/outputcriblhttp.py +19 -135
- cribl_control_plane/models/outputcribllake.py +1 -97
- cribl_control_plane/models/outputcribltcp.py +19 -132
- cribl_control_plane/models/outputcrowdstrikenextgensiem.py +20 -129
- cribl_control_plane/models/outputdatadog.py +19 -159
- cribl_control_plane/models/outputdataset.py +19 -143
- cribl_control_plane/models/outputdiskspool.py +1 -11
- cribl_control_plane/models/outputdls3.py +1 -152
- cribl_control_plane/models/outputdynatracehttp.py +19 -160
- cribl_control_plane/models/outputdynatraceotlp.py +19 -160
- cribl_control_plane/models/outputelastic.py +19 -163
- cribl_control_plane/models/outputelasticcloud.py +19 -140
- cribl_control_plane/models/outputexabeam.py +1 -61
- cribl_control_plane/models/outputfilesystem.py +1 -87
- cribl_control_plane/models/outputgooglechronicle.py +20 -166
- cribl_control_plane/models/outputgooglecloudlogging.py +20 -131
- cribl_control_plane/models/outputgooglecloudstorage.py +1 -136
- cribl_control_plane/models/outputgooglepubsub.py +19 -106
- cribl_control_plane/models/outputgrafanacloud.py +37 -288
- cribl_control_plane/models/outputgraphite.py +19 -105
- cribl_control_plane/models/outputhoneycomb.py +19 -115
- cribl_control_plane/models/outputhumiohec.py +19 -126
- cribl_control_plane/models/outputinfluxdb.py +19 -130
- cribl_control_plane/models/outputkafka.py +34 -302
- cribl_control_plane/models/outputkinesis.py +19 -133
- cribl_control_plane/models/outputloki.py +17 -129
- cribl_control_plane/models/outputminio.py +1 -145
- cribl_control_plane/models/outputmsk.py +34 -193
- cribl_control_plane/models/outputnewrelic.py +19 -136
- cribl_control_plane/models/outputnewrelicevents.py +20 -128
- cribl_control_plane/models/outputopentelemetry.py +19 -178
- cribl_control_plane/models/outputprometheus.py +19 -115
- cribl_control_plane/models/outputring.py +1 -31
- cribl_control_plane/models/outputs3.py +1 -152
- cribl_control_plane/models/outputsecuritylake.py +1 -114
- cribl_control_plane/models/outputsentinel.py +19 -135
- cribl_control_plane/models/outputsentineloneaisiem.py +20 -134
- cribl_control_plane/models/outputservicenow.py +19 -168
- cribl_control_plane/models/outputsignalfx.py +19 -115
- cribl_control_plane/models/outputsns.py +17 -113
- cribl_control_plane/models/outputsplunk.py +19 -153
- cribl_control_plane/models/outputsplunkhec.py +19 -208
- cribl_control_plane/models/outputsplunklb.py +19 -182
- cribl_control_plane/models/outputsqs.py +17 -124
- cribl_control_plane/models/outputstatsd.py +19 -105
- cribl_control_plane/models/outputstatsdext.py +19 -105
- cribl_control_plane/models/outputsumologic.py +19 -117
- cribl_control_plane/models/outputsyslog.py +96 -259
- cribl_control_plane/models/outputtcpjson.py +19 -141
- cribl_control_plane/models/outputwavefront.py +19 -115
- cribl_control_plane/models/outputwebhook.py +19 -161
- cribl_control_plane/models/outputxsiam.py +17 -113
- cribl_control_plane/models/packinfo.py +5 -8
- cribl_control_plane/models/packinstallinfo.py +5 -8
- cribl_control_plane/models/resourcepolicy.py +0 -11
- cribl_control_plane/models/{uploadpackresponse.py → routecloneconf.py} +4 -4
- cribl_control_plane/models/routeconf.py +4 -3
- cribl_control_plane/models/runnablejobcollection.py +9 -72
- cribl_control_plane/models/runnablejobexecutor.py +9 -32
- cribl_control_plane/models/runnablejobscheduledsearch.py +9 -23
- cribl_control_plane/models/updateconfiggroupbyproductandidop.py +0 -11
- cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +0 -11
- cribl_control_plane/packs.py +7 -202
- cribl_control_plane/routes_sdk.py +6 -6
- cribl_control_plane/tokens.py +15 -23
- {cribl_control_plane-0.2.1rc7.dist-info → cribl_control_plane-0.3.0a1.dist-info}/METADATA +9 -50
- cribl_control_plane-0.3.0a1.dist-info/RECORD +330 -0
- cribl_control_plane/models/groupcreaterequest.py +0 -171
- cribl_control_plane/models/outpostnodeinfo.py +0 -16
- cribl_control_plane/models/outputdatabricks.py +0 -482
- cribl_control_plane/models/updatepacksop.py +0 -25
- cribl_control_plane-0.2.1rc7.dist-info/RECORD +0 -331
- {cribl_control_plane-0.2.1rc7.dist-info → cribl_control_plane-0.3.0a1.dist-info}/WHEEL +0 -0
|
@@ -1,12 +1,11 @@
|
|
|
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
|
|
4
|
+
from cribl_control_plane import utils
|
|
5
5
|
from cribl_control_plane.types import BaseModel
|
|
6
6
|
from cribl_control_plane.utils import validate_open_enum
|
|
7
7
|
from enum import Enum
|
|
8
8
|
import pydantic
|
|
9
|
-
from pydantic import field_serializer
|
|
10
9
|
from pydantic.functional_validators import PlainValidator
|
|
11
10
|
from typing import List, Optional
|
|
12
11
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
@@ -30,18 +29,14 @@ class InputWizConnection(BaseModel):
|
|
|
30
29
|
class InputWizMode(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
31
30
|
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."""
|
|
32
31
|
|
|
33
|
-
# Smart
|
|
34
32
|
SMART = "smart"
|
|
35
|
-
# Always On
|
|
36
33
|
ALWAYS = "always"
|
|
37
34
|
|
|
38
35
|
|
|
39
36
|
class InputWizCompression(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
40
37
|
r"""Codec to use to compress the persisted data"""
|
|
41
38
|
|
|
42
|
-
# None
|
|
43
39
|
NONE = "none"
|
|
44
|
-
# Gzip
|
|
45
40
|
GZIP = "gzip"
|
|
46
41
|
|
|
47
42
|
|
|
@@ -107,24 +102,6 @@ class InputWizPq(BaseModel):
|
|
|
107
102
|
Optional[InputWizPqControls], pydantic.Field(alias="pqControls")
|
|
108
103
|
] = None
|
|
109
104
|
|
|
110
|
-
@field_serializer("mode")
|
|
111
|
-
def serialize_mode(self, value):
|
|
112
|
-
if isinstance(value, str):
|
|
113
|
-
try:
|
|
114
|
-
return models.InputWizMode(value)
|
|
115
|
-
except ValueError:
|
|
116
|
-
return value
|
|
117
|
-
return value
|
|
118
|
-
|
|
119
|
-
@field_serializer("compress")
|
|
120
|
-
def serialize_compress(self, value):
|
|
121
|
-
if isinstance(value, str):
|
|
122
|
-
try:
|
|
123
|
-
return models.InputWizCompression(value)
|
|
124
|
-
except ValueError:
|
|
125
|
-
return value
|
|
126
|
-
return value
|
|
127
|
-
|
|
128
105
|
|
|
129
106
|
class InputWizContentConfigTypedDict(TypedDict):
|
|
130
107
|
content_type: str
|
|
@@ -160,11 +137,8 @@ class InputWizMetadatum(BaseModel):
|
|
|
160
137
|
class InputWizRetryType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
161
138
|
r"""The algorithm to use when performing HTTP retries"""
|
|
162
139
|
|
|
163
|
-
# Disabled
|
|
164
140
|
NONE = "none"
|
|
165
|
-
# Backoff
|
|
166
141
|
BACKOFF = "backoff"
|
|
167
|
-
# Static
|
|
168
142
|
STATIC = "static"
|
|
169
143
|
|
|
170
144
|
|
|
@@ -220,15 +194,6 @@ class InputWizRetryRules(BaseModel):
|
|
|
220
194
|
] = False
|
|
221
195
|
r"""Retry request when a connection reset (ECONNRESET) error occurs"""
|
|
222
196
|
|
|
223
|
-
@field_serializer("type")
|
|
224
|
-
def serialize_type(self, value):
|
|
225
|
-
if isinstance(value, str):
|
|
226
|
-
try:
|
|
227
|
-
return models.InputWizRetryType(value)
|
|
228
|
-
except ValueError:
|
|
229
|
-
return value
|
|
230
|
-
return value
|
|
231
|
-
|
|
232
197
|
|
|
233
198
|
class InputWizAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
234
199
|
r"""Enter client secret directly, or select a stored secret"""
|
|
@@ -380,12 +345,3 @@ class InputWiz(BaseModel):
|
|
|
380
345
|
|
|
381
346
|
text_secret: Annotated[Optional[str], pydantic.Field(alias="textSecret")] = None
|
|
382
347
|
r"""Select or create a stored text secret"""
|
|
383
|
-
|
|
384
|
-
@field_serializer("auth_type")
|
|
385
|
-
def serialize_auth_type(self, value):
|
|
386
|
-
if isinstance(value, str):
|
|
387
|
-
try:
|
|
388
|
-
return models.InputWizAuthenticationMethod(value)
|
|
389
|
-
except ValueError:
|
|
390
|
-
return value
|
|
391
|
-
return value
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from cribl_control_plane import
|
|
4
|
+
from cribl_control_plane import utils
|
|
5
5
|
from cribl_control_plane.types import BaseModel
|
|
6
6
|
from cribl_control_plane.utils import validate_open_enum
|
|
7
7
|
from enum import Enum
|
|
8
8
|
import pydantic
|
|
9
|
-
from pydantic import field_serializer
|
|
10
9
|
from pydantic.functional_validators import PlainValidator
|
|
11
|
-
from typing import List, Optional
|
|
10
|
+
from typing import Any, List, Optional
|
|
12
11
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
12
|
|
|
14
13
|
|
|
@@ -30,18 +29,14 @@ class InputWizWebhookConnection(BaseModel):
|
|
|
30
29
|
class InputWizWebhookMode(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
31
30
|
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."""
|
|
32
31
|
|
|
33
|
-
# Smart
|
|
34
32
|
SMART = "smart"
|
|
35
|
-
# Always On
|
|
36
33
|
ALWAYS = "always"
|
|
37
34
|
|
|
38
35
|
|
|
39
36
|
class InputWizWebhookCompression(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
40
37
|
r"""Codec to use to compress the persisted data"""
|
|
41
38
|
|
|
42
|
-
# None
|
|
43
39
|
NONE = "none"
|
|
44
|
-
# Gzip
|
|
45
40
|
GZIP = "gzip"
|
|
46
41
|
|
|
47
42
|
|
|
@@ -107,24 +102,6 @@ class InputWizWebhookPq(BaseModel):
|
|
|
107
102
|
Optional[InputWizWebhookPqControls], pydantic.Field(alias="pqControls")
|
|
108
103
|
] = None
|
|
109
104
|
|
|
110
|
-
@field_serializer("mode")
|
|
111
|
-
def serialize_mode(self, value):
|
|
112
|
-
if isinstance(value, str):
|
|
113
|
-
try:
|
|
114
|
-
return models.InputWizWebhookMode(value)
|
|
115
|
-
except ValueError:
|
|
116
|
-
return value
|
|
117
|
-
return value
|
|
118
|
-
|
|
119
|
-
@field_serializer("compress")
|
|
120
|
-
def serialize_compress(self, value):
|
|
121
|
-
if isinstance(value, str):
|
|
122
|
-
try:
|
|
123
|
-
return models.InputWizWebhookCompression(value)
|
|
124
|
-
except ValueError:
|
|
125
|
-
return value
|
|
126
|
-
return value
|
|
127
|
-
|
|
128
105
|
|
|
129
106
|
class InputWizWebhookMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
130
107
|
TL_SV1 = "TLSv1"
|
|
@@ -142,12 +119,6 @@ class InputWizWebhookMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
142
119
|
|
|
143
120
|
class InputWizWebhookTLSSettingsServerSideTypedDict(TypedDict):
|
|
144
121
|
disabled: NotRequired[bool]
|
|
145
|
-
request_cert: NotRequired[bool]
|
|
146
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
147
|
-
reject_unauthorized: NotRequired[bool]
|
|
148
|
-
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
149
|
-
common_name_regex: NotRequired[str]
|
|
150
|
-
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
151
122
|
certificate_name: NotRequired[str]
|
|
152
123
|
r"""The name of the predefined certificate"""
|
|
153
124
|
priv_key_path: NotRequired[str]
|
|
@@ -158,6 +129,10 @@ class InputWizWebhookTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
158
129
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
159
130
|
ca_path: NotRequired[str]
|
|
160
131
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
132
|
+
request_cert: NotRequired[bool]
|
|
133
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
134
|
+
reject_unauthorized: NotRequired[Any]
|
|
135
|
+
common_name_regex: NotRequired[Any]
|
|
161
136
|
min_version: NotRequired[InputWizWebhookMinimumTLSVersion]
|
|
162
137
|
max_version: NotRequired[InputWizWebhookMaximumTLSVersion]
|
|
163
138
|
|
|
@@ -165,19 +140,6 @@ class InputWizWebhookTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
165
140
|
class InputWizWebhookTLSSettingsServerSide(BaseModel):
|
|
166
141
|
disabled: Optional[bool] = True
|
|
167
142
|
|
|
168
|
-
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
169
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
170
|
-
|
|
171
|
-
reject_unauthorized: Annotated[
|
|
172
|
-
Optional[bool], pydantic.Field(alias="rejectUnauthorized")
|
|
173
|
-
] = True
|
|
174
|
-
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
175
|
-
|
|
176
|
-
common_name_regex: Annotated[
|
|
177
|
-
Optional[str], pydantic.Field(alias="commonNameRegex")
|
|
178
|
-
] = "/.*/"
|
|
179
|
-
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
180
|
-
|
|
181
143
|
certificate_name: Annotated[
|
|
182
144
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
183
145
|
] = None
|
|
@@ -195,6 +157,17 @@ class InputWizWebhookTLSSettingsServerSide(BaseModel):
|
|
|
195
157
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
196
158
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
197
159
|
|
|
160
|
+
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
161
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
162
|
+
|
|
163
|
+
reject_unauthorized: Annotated[
|
|
164
|
+
Optional[Any], pydantic.Field(alias="rejectUnauthorized")
|
|
165
|
+
] = None
|
|
166
|
+
|
|
167
|
+
common_name_regex: Annotated[
|
|
168
|
+
Optional[Any], pydantic.Field(alias="commonNameRegex")
|
|
169
|
+
] = None
|
|
170
|
+
|
|
198
171
|
min_version: Annotated[
|
|
199
172
|
Annotated[
|
|
200
173
|
Optional[InputWizWebhookMinimumTLSVersion],
|
|
@@ -211,24 +184,6 @@ class InputWizWebhookTLSSettingsServerSide(BaseModel):
|
|
|
211
184
|
pydantic.Field(alias="maxVersion"),
|
|
212
185
|
] = None
|
|
213
186
|
|
|
214
|
-
@field_serializer("min_version")
|
|
215
|
-
def serialize_min_version(self, value):
|
|
216
|
-
if isinstance(value, str):
|
|
217
|
-
try:
|
|
218
|
-
return models.InputWizWebhookMinimumTLSVersion(value)
|
|
219
|
-
except ValueError:
|
|
220
|
-
return value
|
|
221
|
-
return value
|
|
222
|
-
|
|
223
|
-
@field_serializer("max_version")
|
|
224
|
-
def serialize_max_version(self, value):
|
|
225
|
-
if isinstance(value, str):
|
|
226
|
-
try:
|
|
227
|
-
return models.InputWizWebhookMaximumTLSVersion(value)
|
|
228
|
-
except ValueError:
|
|
229
|
-
return value
|
|
230
|
-
return value
|
|
231
|
-
|
|
232
187
|
|
|
233
188
|
class InputWizWebhookMetadatumTypedDict(TypedDict):
|
|
234
189
|
name: str
|
|
@@ -1,12 +1,11 @@
|
|
|
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
|
|
4
|
+
from cribl_control_plane import utils
|
|
5
5
|
from cribl_control_plane.types import BaseModel
|
|
6
6
|
from cribl_control_plane.utils import validate_open_enum
|
|
7
7
|
from enum import Enum
|
|
8
8
|
import pydantic
|
|
9
|
-
from pydantic import field_serializer
|
|
10
9
|
from pydantic.functional_validators import PlainValidator
|
|
11
10
|
from typing import Any, List, Optional
|
|
12
11
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
@@ -30,18 +29,14 @@ class InputZscalerHecConnection(BaseModel):
|
|
|
30
29
|
class InputZscalerHecMode(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
31
30
|
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."""
|
|
32
31
|
|
|
33
|
-
# Smart
|
|
34
32
|
SMART = "smart"
|
|
35
|
-
# Always On
|
|
36
33
|
ALWAYS = "always"
|
|
37
34
|
|
|
38
35
|
|
|
39
36
|
class InputZscalerHecCompression(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
40
37
|
r"""Codec to use to compress the persisted data"""
|
|
41
38
|
|
|
42
|
-
# None
|
|
43
39
|
NONE = "none"
|
|
44
|
-
# Gzip
|
|
45
40
|
GZIP = "gzip"
|
|
46
41
|
|
|
47
42
|
|
|
@@ -107,24 +102,6 @@ class InputZscalerHecPq(BaseModel):
|
|
|
107
102
|
Optional[InputZscalerHecPqControls], pydantic.Field(alias="pqControls")
|
|
108
103
|
] = None
|
|
109
104
|
|
|
110
|
-
@field_serializer("mode")
|
|
111
|
-
def serialize_mode(self, value):
|
|
112
|
-
if isinstance(value, str):
|
|
113
|
-
try:
|
|
114
|
-
return models.InputZscalerHecMode(value)
|
|
115
|
-
except ValueError:
|
|
116
|
-
return value
|
|
117
|
-
return value
|
|
118
|
-
|
|
119
|
-
@field_serializer("compress")
|
|
120
|
-
def serialize_compress(self, value):
|
|
121
|
-
if isinstance(value, str):
|
|
122
|
-
try:
|
|
123
|
-
return models.InputZscalerHecCompression(value)
|
|
124
|
-
except ValueError:
|
|
125
|
-
return value
|
|
126
|
-
return value
|
|
127
|
-
|
|
128
105
|
|
|
129
106
|
class InputZscalerHecAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
130
107
|
r"""Select Manual to enter an auth token directly, or select Secret to use a text secret to authenticate"""
|
|
@@ -185,15 +162,6 @@ class InputZscalerHecAuthToken(BaseModel):
|
|
|
185
162
|
metadata: Optional[List[InputZscalerHecAuthTokenMetadatum]] = None
|
|
186
163
|
r"""Fields to add to events referencing this token"""
|
|
187
164
|
|
|
188
|
-
@field_serializer("auth_type")
|
|
189
|
-
def serialize_auth_type(self, value):
|
|
190
|
-
if isinstance(value, str):
|
|
191
|
-
try:
|
|
192
|
-
return models.InputZscalerHecAuthenticationMethod(value)
|
|
193
|
-
except ValueError:
|
|
194
|
-
return value
|
|
195
|
-
return value
|
|
196
|
-
|
|
197
165
|
|
|
198
166
|
class InputZscalerHecMinimumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
199
167
|
TL_SV1 = "TLSv1"
|
|
@@ -211,12 +179,6 @@ class InputZscalerHecMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
|
211
179
|
|
|
212
180
|
class InputZscalerHecTLSSettingsServerSideTypedDict(TypedDict):
|
|
213
181
|
disabled: NotRequired[bool]
|
|
214
|
-
request_cert: NotRequired[bool]
|
|
215
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
216
|
-
reject_unauthorized: NotRequired[bool]
|
|
217
|
-
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
218
|
-
common_name_regex: NotRequired[str]
|
|
219
|
-
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
220
182
|
certificate_name: NotRequired[str]
|
|
221
183
|
r"""The name of the predefined certificate"""
|
|
222
184
|
priv_key_path: NotRequired[str]
|
|
@@ -227,6 +189,10 @@ class InputZscalerHecTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
227
189
|
r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
228
190
|
ca_path: NotRequired[str]
|
|
229
191
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
192
|
+
request_cert: NotRequired[bool]
|
|
193
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
194
|
+
reject_unauthorized: NotRequired[Any]
|
|
195
|
+
common_name_regex: NotRequired[Any]
|
|
230
196
|
min_version: NotRequired[InputZscalerHecMinimumTLSVersion]
|
|
231
197
|
max_version: NotRequired[InputZscalerHecMaximumTLSVersion]
|
|
232
198
|
|
|
@@ -234,19 +200,6 @@ class InputZscalerHecTLSSettingsServerSideTypedDict(TypedDict):
|
|
|
234
200
|
class InputZscalerHecTLSSettingsServerSide(BaseModel):
|
|
235
201
|
disabled: Optional[bool] = True
|
|
236
202
|
|
|
237
|
-
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
238
|
-
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
239
|
-
|
|
240
|
-
reject_unauthorized: Annotated[
|
|
241
|
-
Optional[bool], pydantic.Field(alias="rejectUnauthorized")
|
|
242
|
-
] = True
|
|
243
|
-
r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
|
|
244
|
-
|
|
245
|
-
common_name_regex: Annotated[
|
|
246
|
-
Optional[str], pydantic.Field(alias="commonNameRegex")
|
|
247
|
-
] = "/.*/"
|
|
248
|
-
r"""Regex matching allowable common names in peer certificates' subject attribute"""
|
|
249
|
-
|
|
250
203
|
certificate_name: Annotated[
|
|
251
204
|
Optional[str], pydantic.Field(alias="certificateName")
|
|
252
205
|
] = None
|
|
@@ -264,6 +217,17 @@ class InputZscalerHecTLSSettingsServerSide(BaseModel):
|
|
|
264
217
|
ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
|
|
265
218
|
r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
|
|
266
219
|
|
|
220
|
+
request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
|
|
221
|
+
r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
|
|
222
|
+
|
|
223
|
+
reject_unauthorized: Annotated[
|
|
224
|
+
Optional[Any], pydantic.Field(alias="rejectUnauthorized")
|
|
225
|
+
] = None
|
|
226
|
+
|
|
227
|
+
common_name_regex: Annotated[
|
|
228
|
+
Optional[Any], pydantic.Field(alias="commonNameRegex")
|
|
229
|
+
] = None
|
|
230
|
+
|
|
267
231
|
min_version: Annotated[
|
|
268
232
|
Annotated[
|
|
269
233
|
Optional[InputZscalerHecMinimumTLSVersion],
|
|
@@ -280,24 +244,6 @@ class InputZscalerHecTLSSettingsServerSide(BaseModel):
|
|
|
280
244
|
pydantic.Field(alias="maxVersion"),
|
|
281
245
|
] = None
|
|
282
246
|
|
|
283
|
-
@field_serializer("min_version")
|
|
284
|
-
def serialize_min_version(self, value):
|
|
285
|
-
if isinstance(value, str):
|
|
286
|
-
try:
|
|
287
|
-
return models.InputZscalerHecMinimumTLSVersion(value)
|
|
288
|
-
except ValueError:
|
|
289
|
-
return value
|
|
290
|
-
return value
|
|
291
|
-
|
|
292
|
-
@field_serializer("max_version")
|
|
293
|
-
def serialize_max_version(self, value):
|
|
294
|
-
if isinstance(value, str):
|
|
295
|
-
try:
|
|
296
|
-
return models.InputZscalerHecMaximumTLSVersion(value)
|
|
297
|
-
except ValueError:
|
|
298
|
-
return value
|
|
299
|
-
return value
|
|
300
|
-
|
|
301
247
|
|
|
302
248
|
class InputZscalerHecMetadatumTypedDict(TypedDict):
|
|
303
249
|
name: str
|
|
@@ -4,14 +4,13 @@ from __future__ import annotations
|
|
|
4
4
|
from .jobstatus import JobStatus, JobStatusTypedDict
|
|
5
5
|
from .runnablejob import RunnableJob, RunnableJobTypedDict
|
|
6
6
|
from cribl_control_plane.types import BaseModel
|
|
7
|
-
from typing import
|
|
7
|
+
from typing import Optional
|
|
8
8
|
from typing_extensions import NotRequired, TypedDict
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class JobInfoTypedDict(TypedDict):
|
|
12
12
|
args: RunnableJobTypedDict
|
|
13
13
|
id: str
|
|
14
|
-
stats: Dict[str, float]
|
|
15
14
|
status: JobStatusTypedDict
|
|
16
15
|
keep: NotRequired[bool]
|
|
17
16
|
|
|
@@ -21,8 +20,6 @@ class JobInfo(BaseModel):
|
|
|
21
20
|
|
|
22
21
|
id: str
|
|
23
22
|
|
|
24
|
-
stats: Dict[str, float]
|
|
25
|
-
|
|
26
23
|
status: JobStatus
|
|
27
24
|
|
|
28
25
|
keep: Optional[bool] = None
|
|
@@ -1,48 +1,17 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from cribl_control_plane import models, utils
|
|
5
4
|
from cribl_control_plane.types import BaseModel
|
|
6
|
-
from cribl_control_plane.utils import validate_open_enum
|
|
7
|
-
from enum import Enum
|
|
8
|
-
from pydantic import field_serializer
|
|
9
|
-
from pydantic.functional_validators import PlainValidator
|
|
10
5
|
from typing import Any, Dict, Optional
|
|
11
|
-
from typing_extensions import
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class State(int, Enum, metaclass=utils.OpenEnumMeta):
|
|
15
|
-
r"""State of the Job"""
|
|
16
|
-
|
|
17
|
-
INITIALIZING = 0
|
|
18
|
-
PENDING = 1
|
|
19
|
-
RUNNING = 2
|
|
20
|
-
PAUSED = 3
|
|
21
|
-
CANCELLED = 4
|
|
22
|
-
FINISHED = 5
|
|
23
|
-
FAILED = 6
|
|
24
|
-
ORPHANED = 7
|
|
25
|
-
UNKNOWN = 8
|
|
26
|
-
LENGTH = 9
|
|
6
|
+
from typing_extensions import NotRequired, TypedDict
|
|
27
7
|
|
|
28
8
|
|
|
29
9
|
class JobStatusTypedDict(TypedDict):
|
|
30
|
-
state:
|
|
31
|
-
r"""State of the Job"""
|
|
10
|
+
state: Dict[str, Any]
|
|
32
11
|
reason: NotRequired[Dict[str, Any]]
|
|
33
12
|
|
|
34
13
|
|
|
35
14
|
class JobStatus(BaseModel):
|
|
36
|
-
state:
|
|
37
|
-
r"""State of the Job"""
|
|
15
|
+
state: Dict[str, Any]
|
|
38
16
|
|
|
39
17
|
reason: Optional[Dict[str, Any]] = None
|
|
40
|
-
|
|
41
|
-
@field_serializer("state")
|
|
42
|
-
def serialize_state(self, value):
|
|
43
|
-
if isinstance(value, str):
|
|
44
|
-
try:
|
|
45
|
-
return models.State(value)
|
|
46
|
-
except ValueError:
|
|
47
|
-
return value
|
|
48
|
-
return value
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
from .configgroup import ConfigGroup, ConfigGroupTypedDict
|
|
5
5
|
from .productscore import ProductsCore
|
|
6
|
-
from cribl_control_plane import models
|
|
7
6
|
from cribl_control_plane.types import BaseModel
|
|
8
7
|
from cribl_control_plane.utils import (
|
|
9
8
|
FieldMetadata,
|
|
@@ -11,7 +10,6 @@ from cribl_control_plane.utils import (
|
|
|
11
10
|
QueryParamMetadata,
|
|
12
11
|
validate_open_enum,
|
|
13
12
|
)
|
|
14
|
-
from pydantic import field_serializer
|
|
15
13
|
from pydantic.functional_validators import PlainValidator
|
|
16
14
|
from typing import List, Optional
|
|
17
15
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
@@ -37,15 +35,6 @@ class ListConfigGroupByProductRequest(BaseModel):
|
|
|
37
35
|
] = None
|
|
38
36
|
r"""Comma-separated list of additional properties to include in the response. Available values are <code>git.commit</code>, <code>git.localChanges</code>, and <code>git.log</code>."""
|
|
39
37
|
|
|
40
|
-
@field_serializer("product")
|
|
41
|
-
def serialize_product(self, value):
|
|
42
|
-
if isinstance(value, str):
|
|
43
|
-
try:
|
|
44
|
-
return models.ProductsCore(value)
|
|
45
|
-
except ValueError:
|
|
46
|
-
return value
|
|
47
|
-
return value
|
|
48
|
-
|
|
49
38
|
|
|
50
39
|
class ListConfigGroupByProductResponseTypedDict(TypedDict):
|
|
51
40
|
r"""a list of ConfigGroup objects"""
|
|
@@ -4,12 +4,11 @@ from __future__ import annotations
|
|
|
4
4
|
from .heartbeatmetadata import HeartbeatMetadata, HeartbeatMetadataTypedDict
|
|
5
5
|
from .nodeprovidedinfo import NodeProvidedInfo, NodeProvidedInfoTypedDict
|
|
6
6
|
from .nodeupgradestatus import NodeUpgradeStatus, NodeUpgradeStatusTypedDict
|
|
7
|
-
from cribl_control_plane import
|
|
7
|
+
from cribl_control_plane import utils
|
|
8
8
|
from cribl_control_plane.types import BaseModel
|
|
9
9
|
from cribl_control_plane.utils import validate_open_enum
|
|
10
10
|
from enum import Enum
|
|
11
11
|
import pydantic
|
|
12
|
-
from pydantic import field_serializer
|
|
13
12
|
from pydantic.functional_validators import PlainValidator
|
|
14
13
|
from typing import Optional
|
|
15
14
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
@@ -88,12 +87,3 @@ class MasterWorkerEntry(BaseModel):
|
|
|
88
87
|
] = None
|
|
89
88
|
|
|
90
89
|
workers: Optional[MasterWorkerEntryWorkers] = None
|
|
91
|
-
|
|
92
|
-
@field_serializer("type")
|
|
93
|
-
def serialize_type(self, value):
|
|
94
|
-
if isinstance(value, str):
|
|
95
|
-
try:
|
|
96
|
-
return models.MasterWorkerEntryType(value)
|
|
97
|
-
except ValueError:
|
|
98
|
-
return value
|
|
99
|
-
return value
|
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
from .hbcriblinfo import HBCriblInfo, HBCriblInfoTypedDict
|
|
5
5
|
from .heartbeatmetadata import HeartbeatMetadata, HeartbeatMetadataTypedDict
|
|
6
|
-
from .outpostnodeinfo import OutpostNodeInfo, OutpostNodeInfoTypedDict
|
|
7
6
|
from cribl_control_plane.types import BaseModel
|
|
8
7
|
import pydantic
|
|
9
|
-
from typing import
|
|
8
|
+
from typing import List, Optional, Union
|
|
10
9
|
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
|
|
11
10
|
|
|
12
11
|
|
|
@@ -20,7 +19,6 @@ class NodeProvidedInfoTags(BaseModel):
|
|
|
20
19
|
|
|
21
20
|
class NodeProvidedInfoAwsTypedDict(TypedDict):
|
|
22
21
|
enabled: bool
|
|
23
|
-
instance_id: str
|
|
24
22
|
region: str
|
|
25
23
|
type: str
|
|
26
24
|
zone: str
|
|
@@ -30,8 +28,6 @@ class NodeProvidedInfoAwsTypedDict(TypedDict):
|
|
|
30
28
|
class NodeProvidedInfoAws(BaseModel):
|
|
31
29
|
enabled: bool
|
|
32
30
|
|
|
33
|
-
instance_id: Annotated[str, pydantic.Field(alias="instanceId")]
|
|
34
|
-
|
|
35
31
|
region: str
|
|
36
32
|
|
|
37
33
|
type: str
|
|
@@ -129,7 +125,6 @@ class NodeProvidedInfoTypedDict(TypedDict):
|
|
|
129
125
|
architecture: str
|
|
130
126
|
cpus: float
|
|
131
127
|
cribl: HBCriblInfoTypedDict
|
|
132
|
-
env: Dict[str, str]
|
|
133
128
|
free_disk_space: float
|
|
134
129
|
hostname: str
|
|
135
130
|
node: str
|
|
@@ -145,7 +140,6 @@ class NodeProvidedInfoTypedDict(TypedDict):
|
|
|
145
140
|
local_time: NotRequired[float]
|
|
146
141
|
metadata: NotRequired[HeartbeatMetadataTypedDict]
|
|
147
142
|
os: NotRequired[OsTypedDict]
|
|
148
|
-
outpost: NotRequired[OutpostNodeInfoTypedDict]
|
|
149
143
|
|
|
150
144
|
|
|
151
145
|
class NodeProvidedInfo(BaseModel):
|
|
@@ -155,8 +149,6 @@ class NodeProvidedInfo(BaseModel):
|
|
|
155
149
|
|
|
156
150
|
cribl: HBCriblInfo
|
|
157
151
|
|
|
158
|
-
env: Dict[str, str]
|
|
159
|
-
|
|
160
152
|
free_disk_space: Annotated[float, pydantic.Field(alias="freeDiskSpace")]
|
|
161
153
|
|
|
162
154
|
hostname: str
|
|
@@ -190,5 +182,3 @@ class NodeProvidedInfo(BaseModel):
|
|
|
190
182
|
metadata: Optional[HeartbeatMetadata] = None
|
|
191
183
|
|
|
192
184
|
os: Optional[Os] = None
|
|
193
|
-
|
|
194
|
-
outpost: Optional[OutpostNodeInfo] = None
|
|
@@ -5,10 +5,8 @@ from .nodeactiveupgradestatus import NodeActiveUpgradeStatus
|
|
|
5
5
|
from .nodefailedupgradestatus import NodeFailedUpgradeStatus
|
|
6
6
|
from .nodeskippedupgradestatus import NodeSkippedUpgradeStatus
|
|
7
7
|
from .nodeupgradestate import NodeUpgradeState
|
|
8
|
-
from cribl_control_plane import models
|
|
9
8
|
from cribl_control_plane.types import BaseModel
|
|
10
9
|
from cribl_control_plane.utils import validate_open_enum
|
|
11
|
-
from pydantic import field_serializer
|
|
12
10
|
from pydantic.functional_validators import PlainValidator
|
|
13
11
|
from typing import Optional
|
|
14
12
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
@@ -38,39 +36,3 @@ class NodeUpgradeStatus(BaseModel):
|
|
|
38
36
|
skipped: Annotated[
|
|
39
37
|
Optional[NodeSkippedUpgradeStatus], PlainValidator(validate_open_enum(True))
|
|
40
38
|
] = None
|
|
41
|
-
|
|
42
|
-
@field_serializer("active")
|
|
43
|
-
def serialize_active(self, value):
|
|
44
|
-
if isinstance(value, str):
|
|
45
|
-
try:
|
|
46
|
-
return models.NodeActiveUpgradeStatus(value)
|
|
47
|
-
except ValueError:
|
|
48
|
-
return value
|
|
49
|
-
return value
|
|
50
|
-
|
|
51
|
-
@field_serializer("failed")
|
|
52
|
-
def serialize_failed(self, value):
|
|
53
|
-
if isinstance(value, str):
|
|
54
|
-
try:
|
|
55
|
-
return models.NodeFailedUpgradeStatus(value)
|
|
56
|
-
except ValueError:
|
|
57
|
-
return value
|
|
58
|
-
return value
|
|
59
|
-
|
|
60
|
-
@field_serializer("skipped")
|
|
61
|
-
def serialize_skipped(self, value):
|
|
62
|
-
if isinstance(value, str):
|
|
63
|
-
try:
|
|
64
|
-
return models.NodeSkippedUpgradeStatus(value)
|
|
65
|
-
except ValueError:
|
|
66
|
-
return value
|
|
67
|
-
return value
|
|
68
|
-
|
|
69
|
-
@field_serializer("state")
|
|
70
|
-
def serialize_state(self, value):
|
|
71
|
-
if isinstance(value, str):
|
|
72
|
-
try:
|
|
73
|
-
return models.NodeUpgradeState(value)
|
|
74
|
-
except ValueError:
|
|
75
|
-
return value
|
|
76
|
-
return value
|