cribl-control-plane 0.0.44a1__py3-none-any.whl → 0.0.44a2__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/_hooks/clientcredentials.py +1 -1
- cribl_control_plane/_version.py +4 -4
- cribl_control_plane/acl.py +5 -3
- cribl_control_plane/auth_sdk.py +6 -3
- cribl_control_plane/basesdk.py +11 -1
- cribl_control_plane/commits.py +5 -3
- cribl_control_plane/destinations.py +6 -4
- cribl_control_plane/errors/__init__.py +15 -3
- cribl_control_plane/errors/healthstatus_error.py +8 -2
- cribl_control_plane/groups_configs.py +8 -3
- cribl_control_plane/groups_sdk.py +6 -4
- cribl_control_plane/models/__init__.py +17 -4
- cribl_control_plane/models/appmode.py +2 -1
- cribl_control_plane/models/cacheconnection.py +10 -2
- cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
- cribl_control_plane/models/cloudprovider.py +2 -1
- cribl_control_plane/models/configgroup.py +7 -2
- cribl_control_plane/models/configgroupcloud.py +6 -2
- cribl_control_plane/models/createconfiggroupbyproductop.py +8 -2
- cribl_control_plane/models/cribllakedataset.py +8 -2
- cribl_control_plane/models/datasetmetadata.py +8 -2
- cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +7 -2
- cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +4 -2
- cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +4 -2
- cribl_control_plane/models/getconfiggroupbyproductandidop.py +3 -1
- cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +7 -2
- cribl_control_plane/models/getsummaryop.py +7 -2
- cribl_control_plane/models/hbcriblinfo.py +6 -1
- cribl_control_plane/models/healthstatus.py +7 -4
- cribl_control_plane/models/inputappscope.py +34 -14
- cribl_control_plane/models/inputazureblob.py +17 -6
- cribl_control_plane/models/inputcollection.py +11 -4
- cribl_control_plane/models/inputconfluentcloud.py +47 -20
- cribl_control_plane/models/inputcribl.py +11 -4
- cribl_control_plane/models/inputcriblhttp.py +23 -8
- cribl_control_plane/models/inputcribllakehttp.py +22 -10
- cribl_control_plane/models/inputcriblmetrics.py +12 -4
- cribl_control_plane/models/inputcribltcp.py +23 -8
- cribl_control_plane/models/inputcrowdstrike.py +26 -10
- cribl_control_plane/models/inputdatadogagent.py +24 -8
- cribl_control_plane/models/inputdatagen.py +11 -4
- cribl_control_plane/models/inputedgeprometheus.py +58 -24
- cribl_control_plane/models/inputelastic.py +40 -14
- cribl_control_plane/models/inputeventhub.py +15 -6
- cribl_control_plane/models/inputexec.py +14 -6
- cribl_control_plane/models/inputfile.py +15 -6
- cribl_control_plane/models/inputfirehose.py +23 -8
- cribl_control_plane/models/inputgooglepubsub.py +19 -6
- cribl_control_plane/models/inputgrafana.py +67 -24
- cribl_control_plane/models/inputhttp.py +23 -8
- cribl_control_plane/models/inputhttpraw.py +23 -8
- cribl_control_plane/models/inputjournalfiles.py +12 -4
- cribl_control_plane/models/inputkafka.py +46 -16
- cribl_control_plane/models/inputkinesis.py +38 -14
- cribl_control_plane/models/inputkubeevents.py +11 -4
- cribl_control_plane/models/inputkubelogs.py +16 -8
- cribl_control_plane/models/inputkubemetrics.py +16 -8
- cribl_control_plane/models/inputloki.py +29 -10
- cribl_control_plane/models/inputmetrics.py +23 -8
- cribl_control_plane/models/inputmodeldriventelemetry.py +27 -10
- cribl_control_plane/models/inputmsk.py +53 -18
- cribl_control_plane/models/inputnetflow.py +11 -4
- cribl_control_plane/models/inputoffice365mgmt.py +33 -14
- cribl_control_plane/models/inputoffice365msgtrace.py +35 -16
- cribl_control_plane/models/inputoffice365service.py +35 -16
- cribl_control_plane/models/inputopentelemetry.py +38 -16
- cribl_control_plane/models/inputprometheus.py +50 -18
- cribl_control_plane/models/inputprometheusrw.py +30 -10
- cribl_control_plane/models/inputrawudp.py +11 -4
- cribl_control_plane/models/inputs3.py +21 -8
- cribl_control_plane/models/inputs3inventory.py +26 -10
- cribl_control_plane/models/inputsecuritylake.py +27 -10
- cribl_control_plane/models/inputsnmp.py +16 -6
- cribl_control_plane/models/inputsplunk.py +33 -12
- cribl_control_plane/models/inputsplunkhec.py +29 -10
- cribl_control_plane/models/inputsplunksearch.py +33 -14
- cribl_control_plane/models/inputsqs.py +27 -10
- cribl_control_plane/models/inputsyslog.py +43 -16
- cribl_control_plane/models/inputsystemmetrics.py +48 -24
- cribl_control_plane/models/inputsystemstate.py +16 -8
- cribl_control_plane/models/inputtcp.py +29 -10
- cribl_control_plane/models/inputtcpjson.py +29 -10
- cribl_control_plane/models/inputwef.py +37 -14
- cribl_control_plane/models/inputwindowsmetrics.py +44 -24
- cribl_control_plane/models/inputwineventlogs.py +20 -10
- cribl_control_plane/models/inputwiz.py +21 -8
- cribl_control_plane/models/inputwizwebhook.py +23 -8
- cribl_control_plane/models/inputzscalerhec.py +29 -10
- cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
- cribl_control_plane/models/listconfiggroupbyproductop.py +3 -1
- cribl_control_plane/models/masterworkerentry.py +7 -2
- cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
- cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
- cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
- cribl_control_plane/models/nodeupgradestate.py +2 -1
- cribl_control_plane/models/nodeupgradestatus.py +13 -5
- cribl_control_plane/models/outputazureblob.py +48 -18
- cribl_control_plane/models/outputazuredataexplorer.py +74 -29
- cribl_control_plane/models/outputazureeventhub.py +40 -18
- cribl_control_plane/models/outputazurelogs.py +36 -13
- cribl_control_plane/models/outputclickhouse.py +56 -21
- cribl_control_plane/models/outputcloudwatch.py +29 -10
- cribl_control_plane/models/outputconfluentcloud.py +77 -32
- cribl_control_plane/models/outputcriblhttp.py +46 -18
- cribl_control_plane/models/outputcribllake.py +46 -16
- cribl_control_plane/models/outputcribltcp.py +45 -18
- cribl_control_plane/models/outputcrowdstrikenextgensiem.py +50 -15
- cribl_control_plane/models/outputdatadog.py +48 -20
- cribl_control_plane/models/outputdataset.py +46 -18
- cribl_control_plane/models/outputdiskspool.py +7 -2
- cribl_control_plane/models/outputdls3.py +68 -24
- cribl_control_plane/models/outputdynatracehttp.py +54 -21
- cribl_control_plane/models/outputdynatraceotlp.py +56 -23
- cribl_control_plane/models/outputelastic.py +44 -19
- cribl_control_plane/models/outputelasticcloud.py +37 -13
- cribl_control_plane/models/outputexabeam.py +29 -10
- cribl_control_plane/models/outputfilesystem.py +39 -14
- cribl_control_plane/models/outputgooglechronicle.py +50 -16
- cribl_control_plane/models/outputgooglecloudlogging.py +41 -14
- cribl_control_plane/models/outputgooglecloudstorage.py +66 -24
- cribl_control_plane/models/outputgooglepubsub.py +31 -10
- cribl_control_plane/models/outputgrafanacloud.py +99 -34
- cribl_control_plane/models/outputgraphite.py +31 -14
- cribl_control_plane/models/outputhoneycomb.py +36 -13
- cribl_control_plane/models/outputhumiohec.py +44 -17
- cribl_control_plane/models/outputinfluxdb.py +43 -17
- cribl_control_plane/models/outputkafka.py +74 -28
- cribl_control_plane/models/outputkinesis.py +40 -16
- cribl_control_plane/models/outputloki.py +41 -16
- cribl_control_plane/models/outputminio.py +65 -24
- cribl_control_plane/models/outputmsk.py +82 -30
- cribl_control_plane/models/outputnewrelic.py +43 -18
- cribl_control_plane/models/outputnewrelicevents.py +42 -15
- cribl_control_plane/models/outputopentelemetry.py +68 -27
- cribl_control_plane/models/outputprometheus.py +36 -13
- cribl_control_plane/models/outputring.py +19 -8
- cribl_control_plane/models/outputs3.py +68 -26
- cribl_control_plane/models/outputsecuritylake.py +52 -18
- cribl_control_plane/models/outputsentinel.py +45 -18
- cribl_control_plane/models/outputsentineloneaisiem.py +51 -19
- cribl_control_plane/models/outputservicenow.py +61 -25
- cribl_control_plane/models/outputsignalfx.py +38 -15
- cribl_control_plane/models/outputsns.py +36 -14
- cribl_control_plane/models/outputsplunk.py +60 -24
- cribl_control_plane/models/outputsplunkhec.py +36 -13
- cribl_control_plane/models/outputsplunklb.py +77 -30
- cribl_control_plane/models/outputsqs.py +41 -16
- cribl_control_plane/models/outputstatsd.py +30 -14
- cribl_control_plane/models/outputstatsdext.py +29 -12
- cribl_control_plane/models/outputsumologic.py +35 -12
- cribl_control_plane/models/outputsyslog.py +58 -24
- cribl_control_plane/models/outputtcpjson.py +52 -20
- cribl_control_plane/models/outputwavefront.py +36 -13
- cribl_control_plane/models/outputwebhook.py +58 -22
- cribl_control_plane/models/outputxsiam.py +36 -15
- cribl_control_plane/models/productscore.py +2 -1
- cribl_control_plane/models/rbacresource.py +2 -1
- cribl_control_plane/models/resourcepolicy.py +4 -2
- cribl_control_plane/models/runnablejobcollection.py +30 -13
- cribl_control_plane/models/runnablejobexecutor.py +13 -4
- cribl_control_plane/models/runnablejobscheduledsearch.py +7 -2
- cribl_control_plane/models/updateconfiggroupbyproductandidop.py +8 -2
- cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +8 -2
- cribl_control_plane/models/workertypes.py +2 -1
- cribl_control_plane/nodes.py +5 -3
- cribl_control_plane/sdk.py +15 -2
- cribl_control_plane/sources.py +5 -3
- cribl_control_plane/utils/__init__.py +15 -3
- cribl_control_plane/utils/eventstreaming.py +10 -0
- cribl_control_plane/versions.py +11 -6
- {cribl_control_plane-0.0.44a1.dist-info → cribl_control_plane-0.0.44a2.dist-info}/METADATA +1 -1
- cribl_control_plane-0.0.44a2.dist-info/RECORD +325 -0
- cribl_control_plane-0.0.44a1.dist-info/RECORD +0 -325
- {cribl_control_plane-0.0.44a1.dist-info → cribl_control_plane-0.0.44a2.dist-info}/WHEEL +0 -0
|
@@ -188,7 +188,7 @@ class ClientCredentialsHook(SDKInitHook, BeforeRequestHook, AfterErrorHook):
|
|
|
188
188
|
|
|
189
189
|
response_data = response.json()
|
|
190
190
|
|
|
191
|
-
if response_data.get("token_type") != "
|
|
191
|
+
if response_data.get("token_type", "").lower() != "bearer":
|
|
192
192
|
raise Exception("Unexpected token type from token endpoint")
|
|
193
193
|
|
|
194
194
|
expires_at = None
|
cribl_control_plane/_version.py
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import importlib.metadata
|
|
4
4
|
|
|
5
5
|
__title__: str = "cribl-control-plane"
|
|
6
|
-
__version__: str = "0.0.
|
|
7
|
-
__openapi_doc_version__: str = "4.14.0-alpha.
|
|
8
|
-
__gen_version__: str = "2.
|
|
9
|
-
__user_agent__: str = "speakeasy-sdk/python 0.0.
|
|
6
|
+
__version__: str = "0.0.44a2"
|
|
7
|
+
__openapi_doc_version__: str = "4.14.0-alpha.1757595696230-1a9eb130"
|
|
8
|
+
__gen_version__: str = "2.696.0"
|
|
9
|
+
__user_agent__: str = "speakeasy-sdk/python 0.0.44a2 2.696.0 4.14.0-alpha.1757595696230-1a9eb130 cribl-control-plane"
|
|
10
10
|
|
|
11
11
|
try:
|
|
12
12
|
if __package__ is not None:
|
cribl_control_plane/acl.py
CHANGED
|
@@ -14,13 +14,15 @@ from typing import Any, Mapping, Optional
|
|
|
14
14
|
class ACL(BaseSDK):
|
|
15
15
|
teams: Teams
|
|
16
16
|
|
|
17
|
-
def __init__(
|
|
18
|
-
|
|
17
|
+
def __init__(
|
|
18
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
19
|
+
) -> None:
|
|
20
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
19
21
|
self.sdk_configuration = sdk_config
|
|
20
22
|
self._init_sdks()
|
|
21
23
|
|
|
22
24
|
def _init_sdks(self):
|
|
23
|
-
self.teams = Teams(self.sdk_configuration)
|
|
25
|
+
self.teams = Teams(self.sdk_configuration, parent_ref=self.parent_ref)
|
|
24
26
|
|
|
25
27
|
def get(
|
|
26
28
|
self,
|
cribl_control_plane/auth_sdk.py
CHANGED
|
@@ -3,15 +3,18 @@
|
|
|
3
3
|
from .basesdk import BaseSDK
|
|
4
4
|
from .sdkconfiguration import SDKConfiguration
|
|
5
5
|
from cribl_control_plane.tokens import Tokens
|
|
6
|
+
from typing import Optional
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class AuthSDK(BaseSDK):
|
|
9
10
|
tokens: Tokens
|
|
10
11
|
|
|
11
|
-
def __init__(
|
|
12
|
-
|
|
12
|
+
def __init__(
|
|
13
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
14
|
+
) -> None:
|
|
15
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
13
16
|
self.sdk_configuration = sdk_config
|
|
14
17
|
self._init_sdks()
|
|
15
18
|
|
|
16
19
|
def _init_sdks(self):
|
|
17
|
-
self.tokens = Tokens(self.sdk_configuration)
|
|
20
|
+
self.tokens = Tokens(self.sdk_configuration, parent_ref=self.parent_ref)
|
cribl_control_plane/basesdk.py
CHANGED
|
@@ -19,9 +19,19 @@ from urllib.parse import parse_qs, urlparse
|
|
|
19
19
|
|
|
20
20
|
class BaseSDK:
|
|
21
21
|
sdk_configuration: SDKConfiguration
|
|
22
|
+
parent_ref: Optional[object] = None
|
|
23
|
+
"""
|
|
24
|
+
Reference to the root SDK instance, if any. This will prevent it from
|
|
25
|
+
being garbage collected while there are active streams.
|
|
26
|
+
"""
|
|
22
27
|
|
|
23
|
-
def __init__(
|
|
28
|
+
def __init__(
|
|
29
|
+
self,
|
|
30
|
+
sdk_config: SDKConfiguration,
|
|
31
|
+
parent_ref: Optional[object] = None,
|
|
32
|
+
) -> None:
|
|
24
33
|
self.sdk_configuration = sdk_config
|
|
34
|
+
self.parent_ref = parent_ref
|
|
25
35
|
|
|
26
36
|
def _get_url(self, base_url, url_variables):
|
|
27
37
|
sdk_url, sdk_variables = self.sdk_configuration.get_server_details()
|
cribl_control_plane/commits.py
CHANGED
|
@@ -14,13 +14,15 @@ from typing import Any, List, Mapping, Optional
|
|
|
14
14
|
class Commits(BaseSDK):
|
|
15
15
|
files: CommitsFiles
|
|
16
16
|
|
|
17
|
-
def __init__(
|
|
18
|
-
|
|
17
|
+
def __init__(
|
|
18
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
19
|
+
) -> None:
|
|
20
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
19
21
|
self.sdk_configuration = sdk_config
|
|
20
22
|
self._init_sdks()
|
|
21
23
|
|
|
22
24
|
def _init_sdks(self):
|
|
23
|
-
self.files = CommitsFiles(self.sdk_configuration)
|
|
25
|
+
self.files = CommitsFiles(self.sdk_configuration, parent_ref=self.parent_ref)
|
|
24
26
|
|
|
25
27
|
def create(
|
|
26
28
|
self,
|
|
@@ -18,14 +18,16 @@ class Destinations(BaseSDK):
|
|
|
18
18
|
pq: DestinationsPq
|
|
19
19
|
samples: Samples
|
|
20
20
|
|
|
21
|
-
def __init__(
|
|
22
|
-
|
|
21
|
+
def __init__(
|
|
22
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
23
|
+
) -> None:
|
|
24
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
23
25
|
self.sdk_configuration = sdk_config
|
|
24
26
|
self._init_sdks()
|
|
25
27
|
|
|
26
28
|
def _init_sdks(self):
|
|
27
|
-
self.pq = DestinationsPq(self.sdk_configuration)
|
|
28
|
-
self.samples = Samples(self.sdk_configuration)
|
|
29
|
+
self.pq = DestinationsPq(self.sdk_configuration, parent_ref=self.parent_ref)
|
|
30
|
+
self.samples = Samples(self.sdk_configuration, parent_ref=self.parent_ref)
|
|
29
31
|
|
|
30
32
|
def list(
|
|
31
33
|
self,
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
|
+
from .criblcontrolplaneerror import CriblControlPlaneError
|
|
3
4
|
from typing import TYPE_CHECKING
|
|
4
5
|
from importlib import import_module
|
|
5
6
|
import builtins
|
|
7
|
+
import sys
|
|
6
8
|
|
|
7
9
|
if TYPE_CHECKING:
|
|
8
10
|
from .apierror import APIError
|
|
9
|
-
from .criblcontrolplaneerror import CriblControlPlaneError
|
|
10
11
|
from .error import Error, ErrorData
|
|
11
12
|
from .healthstatus_error import HealthStatusError, HealthStatusErrorData
|
|
12
13
|
from .no_response_error import NoResponseError
|
|
@@ -25,7 +26,6 @@ __all__ = [
|
|
|
25
26
|
|
|
26
27
|
_dynamic_imports: dict[str, str] = {
|
|
27
28
|
"APIError": ".apierror",
|
|
28
|
-
"CriblControlPlaneError": ".criblcontrolplaneerror",
|
|
29
29
|
"Error": ".error",
|
|
30
30
|
"ErrorData": ".error",
|
|
31
31
|
"HealthStatusError": ".healthstatus_error",
|
|
@@ -35,6 +35,18 @@ _dynamic_imports: dict[str, str] = {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
|
|
38
|
+
def dynamic_import(modname, retries=3):
|
|
39
|
+
for attempt in range(retries):
|
|
40
|
+
try:
|
|
41
|
+
return import_module(modname, __package__)
|
|
42
|
+
except KeyError:
|
|
43
|
+
# Clear any half-initialized module and retry
|
|
44
|
+
sys.modules.pop(modname, None)
|
|
45
|
+
if attempt == retries - 1:
|
|
46
|
+
break
|
|
47
|
+
raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
|
|
48
|
+
|
|
49
|
+
|
|
38
50
|
def __getattr__(attr_name: str) -> object:
|
|
39
51
|
module_name = _dynamic_imports.get(attr_name)
|
|
40
52
|
if module_name is None:
|
|
@@ -43,7 +55,7 @@ def __getattr__(attr_name: str) -> object:
|
|
|
43
55
|
)
|
|
44
56
|
|
|
45
57
|
try:
|
|
46
|
-
module =
|
|
58
|
+
module = dynamic_import(module_name)
|
|
47
59
|
result = getattr(module, attr_name)
|
|
48
60
|
return result
|
|
49
61
|
except ImportError as e:
|
|
@@ -4,18 +4,24 @@ from __future__ import annotations
|
|
|
4
4
|
from cribl_control_plane.errors import CriblControlPlaneError
|
|
5
5
|
from cribl_control_plane.models import healthstatus as models_healthstatus
|
|
6
6
|
from cribl_control_plane.types import BaseModel
|
|
7
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
7
8
|
import httpx
|
|
8
9
|
import pydantic
|
|
10
|
+
from pydantic.functional_validators import PlainValidator
|
|
9
11
|
from typing import Optional
|
|
10
12
|
from typing_extensions import Annotated
|
|
11
13
|
|
|
12
14
|
|
|
13
15
|
class HealthStatusErrorData(BaseModel):
|
|
14
|
-
status:
|
|
16
|
+
status: Annotated[
|
|
17
|
+
models_healthstatus.Status, PlainValidator(validate_open_enum(False))
|
|
18
|
+
]
|
|
15
19
|
|
|
16
20
|
start_time: Annotated[float, pydantic.Field(alias="startTime")]
|
|
17
21
|
|
|
18
|
-
role:
|
|
22
|
+
role: Annotated[
|
|
23
|
+
Optional[models_healthstatus.Role], PlainValidator(validate_open_enum(False))
|
|
24
|
+
] = None
|
|
19
25
|
|
|
20
26
|
|
|
21
27
|
class HealthStatusError(CriblControlPlaneError):
|
|
@@ -3,15 +3,20 @@
|
|
|
3
3
|
from .basesdk import BaseSDK
|
|
4
4
|
from .sdkconfiguration import SDKConfiguration
|
|
5
5
|
from cribl_control_plane.configs_versions import ConfigsVersions
|
|
6
|
+
from typing import Optional
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class GroupsConfigs(BaseSDK):
|
|
9
10
|
versions: ConfigsVersions
|
|
10
11
|
|
|
11
|
-
def __init__(
|
|
12
|
-
|
|
12
|
+
def __init__(
|
|
13
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
14
|
+
) -> None:
|
|
15
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
13
16
|
self.sdk_configuration = sdk_config
|
|
14
17
|
self._init_sdks()
|
|
15
18
|
|
|
16
19
|
def _init_sdks(self):
|
|
17
|
-
self.versions = ConfigsVersions(
|
|
20
|
+
self.versions = ConfigsVersions(
|
|
21
|
+
self.sdk_configuration, parent_ref=self.parent_ref
|
|
22
|
+
)
|
|
@@ -18,14 +18,16 @@ class GroupsSDK(BaseSDK):
|
|
|
18
18
|
configs: GroupsConfigs
|
|
19
19
|
acl: ACL
|
|
20
20
|
|
|
21
|
-
def __init__(
|
|
22
|
-
|
|
21
|
+
def __init__(
|
|
22
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
23
|
+
) -> None:
|
|
24
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
23
25
|
self.sdk_configuration = sdk_config
|
|
24
26
|
self._init_sdks()
|
|
25
27
|
|
|
26
28
|
def _init_sdks(self):
|
|
27
|
-
self.configs = GroupsConfigs(self.sdk_configuration)
|
|
28
|
-
self.acl = ACL(self.sdk_configuration)
|
|
29
|
+
self.configs = GroupsConfigs(self.sdk_configuration, parent_ref=self.parent_ref)
|
|
30
|
+
self.acl = ACL(self.sdk_configuration, parent_ref=self.parent_ref)
|
|
29
31
|
|
|
30
32
|
def list(
|
|
31
33
|
self,
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from typing import TYPE_CHECKING
|
|
4
4
|
from importlib import import_module
|
|
5
5
|
import builtins
|
|
6
|
+
import sys
|
|
6
7
|
|
|
7
8
|
if TYPE_CHECKING:
|
|
8
9
|
from .addhectokenrequest import (
|
|
@@ -3143,6 +3144,7 @@ if TYPE_CHECKING:
|
|
|
3143
3144
|
CollectorSpecificSettings,
|
|
3144
3145
|
CollectorSpecificSettingsTypedDict,
|
|
3145
3146
|
CollectorTypedDict,
|
|
3147
|
+
InputType,
|
|
3146
3148
|
RunnableJobCollection,
|
|
3147
3149
|
RunnableJobCollectionInput,
|
|
3148
3150
|
RunnableJobCollectionInputTypedDict,
|
|
@@ -3165,7 +3167,6 @@ if TYPE_CHECKING:
|
|
|
3165
3167
|
RunnableJobCollectionScheduleTypedDict,
|
|
3166
3168
|
RunnableJobCollectionTimeWarning,
|
|
3167
3169
|
RunnableJobCollectionTimeWarningTypedDict,
|
|
3168
|
-
RunnableJobCollectionType,
|
|
3169
3170
|
RunnableJobCollectionTypedDict,
|
|
3170
3171
|
TimeRange,
|
|
3171
3172
|
WhereToCapture,
|
|
@@ -4685,6 +4686,7 @@ __all__ = [
|
|
|
4685
4686
|
"InputTcpjsonTLSSettingsServerSideTypedDict",
|
|
4686
4687
|
"InputTcpjsonType",
|
|
4687
4688
|
"InputTcpjsonTypedDict",
|
|
4689
|
+
"InputType",
|
|
4688
4690
|
"InputTypedDict",
|
|
4689
4691
|
"InputWef",
|
|
4690
4692
|
"InputWefAuthenticationMethod",
|
|
@@ -6085,7 +6087,6 @@ __all__ = [
|
|
|
6085
6087
|
"RunnableJobCollectionScheduleTypedDict",
|
|
6086
6088
|
"RunnableJobCollectionTimeWarning",
|
|
6087
6089
|
"RunnableJobCollectionTimeWarningTypedDict",
|
|
6088
|
-
"RunnableJobCollectionType",
|
|
6089
6090
|
"RunnableJobCollectionTypedDict",
|
|
6090
6091
|
"RunnableJobExecutor",
|
|
6091
6092
|
"RunnableJobExecutorJobType",
|
|
@@ -9019,6 +9020,7 @@ _dynamic_imports: dict[str, str] = {
|
|
|
9019
9020
|
"CollectorSpecificSettings": ".runnablejobcollection",
|
|
9020
9021
|
"CollectorSpecificSettingsTypedDict": ".runnablejobcollection",
|
|
9021
9022
|
"CollectorTypedDict": ".runnablejobcollection",
|
|
9023
|
+
"InputType": ".runnablejobcollection",
|
|
9022
9024
|
"RunnableJobCollection": ".runnablejobcollection",
|
|
9023
9025
|
"RunnableJobCollectionInput": ".runnablejobcollection",
|
|
9024
9026
|
"RunnableJobCollectionInputTypedDict": ".runnablejobcollection",
|
|
@@ -9041,7 +9043,6 @@ _dynamic_imports: dict[str, str] = {
|
|
|
9041
9043
|
"RunnableJobCollectionScheduleTypedDict": ".runnablejobcollection",
|
|
9042
9044
|
"RunnableJobCollectionTimeWarning": ".runnablejobcollection",
|
|
9043
9045
|
"RunnableJobCollectionTimeWarningTypedDict": ".runnablejobcollection",
|
|
9044
|
-
"RunnableJobCollectionType": ".runnablejobcollection",
|
|
9045
9046
|
"RunnableJobCollectionTypedDict": ".runnablejobcollection",
|
|
9046
9047
|
"TimeRange": ".runnablejobcollection",
|
|
9047
9048
|
"WhereToCapture": ".runnablejobcollection",
|
|
@@ -9126,6 +9127,18 @@ _dynamic_imports: dict[str, str] = {
|
|
|
9126
9127
|
}
|
|
9127
9128
|
|
|
9128
9129
|
|
|
9130
|
+
def dynamic_import(modname, retries=3):
|
|
9131
|
+
for attempt in range(retries):
|
|
9132
|
+
try:
|
|
9133
|
+
return import_module(modname, __package__)
|
|
9134
|
+
except KeyError:
|
|
9135
|
+
# Clear any half-initialized module and retry
|
|
9136
|
+
sys.modules.pop(modname, None)
|
|
9137
|
+
if attempt == retries - 1:
|
|
9138
|
+
break
|
|
9139
|
+
raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
|
|
9140
|
+
|
|
9141
|
+
|
|
9129
9142
|
def __getattr__(attr_name: str) -> object:
|
|
9130
9143
|
module_name = _dynamic_imports.get(attr_name)
|
|
9131
9144
|
if module_name is None:
|
|
@@ -9134,7 +9147,7 @@ def __getattr__(attr_name: str) -> object:
|
|
|
9134
9147
|
)
|
|
9135
9148
|
|
|
9136
9149
|
try:
|
|
9137
|
-
module =
|
|
9150
|
+
module = dynamic_import(module_name)
|
|
9138
9151
|
result = getattr(module, attr_name)
|
|
9139
9152
|
return result
|
|
9140
9153
|
except ImportError as e:
|
|
@@ -1,10 +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 utils
|
|
4
5
|
from enum import Enum
|
|
5
6
|
|
|
6
7
|
|
|
7
|
-
class AppMode(str, Enum):
|
|
8
|
+
class AppMode(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
8
9
|
SINGLE = "single"
|
|
9
10
|
MASTER = "master"
|
|
10
11
|
WORKER = "worker"
|
|
@@ -4,7 +4,9 @@ from __future__ import annotations
|
|
|
4
4
|
from .cacheconnectionbackfillstatus import CacheConnectionBackfillStatus
|
|
5
5
|
from .lakehouseconnectiontype import LakehouseConnectionType
|
|
6
6
|
from cribl_control_plane.types import BaseModel
|
|
7
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
7
8
|
import pydantic
|
|
9
|
+
from pydantic.functional_validators import PlainValidator
|
|
8
10
|
from typing import List, Optional
|
|
9
11
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
12
|
|
|
@@ -31,11 +33,17 @@ class CacheConnection(BaseModel):
|
|
|
31
33
|
] = None
|
|
32
34
|
|
|
33
35
|
backfill_status: Annotated[
|
|
34
|
-
|
|
36
|
+
Annotated[
|
|
37
|
+
Optional[CacheConnectionBackfillStatus],
|
|
38
|
+
PlainValidator(validate_open_enum(False)),
|
|
39
|
+
],
|
|
40
|
+
pydantic.Field(alias="backfillStatus"),
|
|
35
41
|
] = None
|
|
36
42
|
|
|
37
43
|
lakehouse_connection_type: Annotated[
|
|
38
|
-
|
|
44
|
+
Annotated[
|
|
45
|
+
Optional[LakehouseConnectionType], PlainValidator(validate_open_enum(False))
|
|
46
|
+
],
|
|
39
47
|
pydantic.Field(alias="lakehouseConnectionType"),
|
|
40
48
|
] = None
|
|
41
49
|
|
|
@@ -1,10 +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 utils
|
|
4
5
|
from enum import Enum
|
|
5
6
|
|
|
6
7
|
|
|
7
|
-
class CacheConnectionBackfillStatus(str, Enum):
|
|
8
|
+
class CacheConnectionBackfillStatus(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
8
9
|
SCHEDULED = "scheduled"
|
|
9
10
|
PENDING = "pending"
|
|
10
11
|
STARTED = "started"
|
|
@@ -1,9 +1,10 @@
|
|
|
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
|
|
4
5
|
from enum import Enum
|
|
5
6
|
|
|
6
7
|
|
|
7
|
-
class CloudProvider(str, Enum):
|
|
8
|
+
class CloudProvider(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
8
9
|
AWS = "aws"
|
|
9
10
|
AZURE = "azure"
|
|
@@ -4,9 +4,12 @@ from __future__ import annotations
|
|
|
4
4
|
from .commit import Commit, CommitTypedDict
|
|
5
5
|
from .configgroupcloud import ConfigGroupCloud, ConfigGroupCloudTypedDict
|
|
6
6
|
from .configgrouplookups import ConfigGroupLookups, ConfigGroupLookupsTypedDict
|
|
7
|
+
from cribl_control_plane import utils
|
|
7
8
|
from cribl_control_plane.types import BaseModel
|
|
9
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
8
10
|
from enum import Enum
|
|
9
11
|
import pydantic
|
|
12
|
+
from pydantic.functional_validators import PlainValidator
|
|
10
13
|
from typing import List, Optional
|
|
11
14
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
15
|
|
|
@@ -27,7 +30,7 @@ class Git(BaseModel):
|
|
|
27
30
|
log: Optional[List[Commit]] = None
|
|
28
31
|
|
|
29
32
|
|
|
30
|
-
class ConfigGroupType(str, Enum):
|
|
33
|
+
class ConfigGroupType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
31
34
|
LAKE_ACCESS = "lake_access"
|
|
32
35
|
|
|
33
36
|
|
|
@@ -105,7 +108,9 @@ class ConfigGroup(BaseModel):
|
|
|
105
108
|
|
|
106
109
|
tags: Optional[str] = None
|
|
107
110
|
|
|
108
|
-
type:
|
|
111
|
+
type: Annotated[
|
|
112
|
+
Optional[ConfigGroupType], PlainValidator(validate_open_enum(False))
|
|
113
|
+
] = None
|
|
109
114
|
|
|
110
115
|
upgrade_version: Annotated[
|
|
111
116
|
Optional[str], pydantic.Field(alias="upgradeVersion")
|
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
from .cloudprovider import CloudProvider
|
|
5
5
|
from cribl_control_plane.types import BaseModel, Nullable, UNSET_SENTINEL
|
|
6
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
6
7
|
from pydantic import model_serializer
|
|
7
|
-
from
|
|
8
|
+
from pydantic.functional_validators import PlainValidator
|
|
9
|
+
from typing_extensions import Annotated, TypedDict
|
|
8
10
|
|
|
9
11
|
|
|
10
12
|
class ConfigGroupCloudTypedDict(TypedDict):
|
|
@@ -13,7 +15,9 @@ class ConfigGroupCloudTypedDict(TypedDict):
|
|
|
13
15
|
|
|
14
16
|
|
|
15
17
|
class ConfigGroupCloud(BaseModel):
|
|
16
|
-
provider:
|
|
18
|
+
provider: Annotated[
|
|
19
|
+
Nullable[CloudProvider], PlainValidator(validate_open_enum(False))
|
|
20
|
+
]
|
|
17
21
|
|
|
18
22
|
region: str
|
|
19
23
|
|
|
@@ -4,7 +4,13 @@ from __future__ import annotations
|
|
|
4
4
|
from .configgroup import ConfigGroup, ConfigGroupTypedDict
|
|
5
5
|
from .productscore import ProductsCore
|
|
6
6
|
from cribl_control_plane.types import BaseModel
|
|
7
|
-
from cribl_control_plane.utils import
|
|
7
|
+
from cribl_control_plane.utils import (
|
|
8
|
+
FieldMetadata,
|
|
9
|
+
PathParamMetadata,
|
|
10
|
+
RequestMetadata,
|
|
11
|
+
validate_open_enum,
|
|
12
|
+
)
|
|
13
|
+
from pydantic.functional_validators import PlainValidator
|
|
8
14
|
from typing import List, Optional
|
|
9
15
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
16
|
|
|
@@ -18,7 +24,7 @@ class CreateConfigGroupByProductRequestTypedDict(TypedDict):
|
|
|
18
24
|
|
|
19
25
|
class CreateConfigGroupByProductRequest(BaseModel):
|
|
20
26
|
product: Annotated[
|
|
21
|
-
ProductsCore,
|
|
27
|
+
Annotated[ProductsCore, PlainValidator(validate_open_enum(False))],
|
|
22
28
|
FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
|
|
23
29
|
]
|
|
24
30
|
r"""Name of the Cribl product to add the Worker Group or Edge Fleet to."""
|
|
@@ -6,14 +6,17 @@ from .lakedatasetsearchconfig import (
|
|
|
6
6
|
LakeDatasetSearchConfig,
|
|
7
7
|
LakeDatasetSearchConfigTypedDict,
|
|
8
8
|
)
|
|
9
|
+
from cribl_control_plane import utils
|
|
9
10
|
from cribl_control_plane.types import BaseModel
|
|
11
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
10
12
|
from enum import Enum
|
|
11
13
|
import pydantic
|
|
14
|
+
from pydantic.functional_validators import PlainValidator
|
|
12
15
|
from typing import List, Optional
|
|
13
16
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
14
17
|
|
|
15
18
|
|
|
16
|
-
class CriblLakeDatasetFormat(str, Enum):
|
|
19
|
+
class CriblLakeDatasetFormat(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
17
20
|
JSON = "json"
|
|
18
21
|
DDSS = "ddss"
|
|
19
22
|
PARQUET = "parquet"
|
|
@@ -54,7 +57,10 @@ class CriblLakeDataset(BaseModel):
|
|
|
54
57
|
description: Optional[str] = None
|
|
55
58
|
|
|
56
59
|
format_: Annotated[
|
|
57
|
-
|
|
60
|
+
Annotated[
|
|
61
|
+
Optional[CriblLakeDatasetFormat], PlainValidator(validate_open_enum(False))
|
|
62
|
+
],
|
|
63
|
+
pydantic.Field(alias="format"),
|
|
58
64
|
] = None
|
|
59
65
|
|
|
60
66
|
http_da_used: Annotated[Optional[bool], pydantic.Field(alias="httpDAUsed")] = None
|
|
@@ -5,14 +5,17 @@ from .datasetmetadataruninfo import (
|
|
|
5
5
|
DatasetMetadataRunInfo,
|
|
6
6
|
DatasetMetadataRunInfoTypedDict,
|
|
7
7
|
)
|
|
8
|
+
from cribl_control_plane import utils
|
|
8
9
|
from cribl_control_plane.types import BaseModel
|
|
10
|
+
from cribl_control_plane.utils import validate_open_enum
|
|
9
11
|
from enum import Enum
|
|
10
12
|
import pydantic
|
|
13
|
+
from pydantic.functional_validators import PlainValidator
|
|
11
14
|
from typing import List, Optional
|
|
12
15
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
16
|
|
|
14
17
|
|
|
15
|
-
class ScanMode(str, Enum):
|
|
18
|
+
class ScanMode(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
16
19
|
DETAILED = "detailed"
|
|
17
20
|
QUICK = "quick"
|
|
18
21
|
|
|
@@ -32,7 +35,10 @@ class DatasetMetadata(BaseModel):
|
|
|
32
35
|
|
|
33
36
|
field_list: Annotated[List[str], pydantic.Field(alias="fieldList")]
|
|
34
37
|
|
|
35
|
-
scan_mode: Annotated[
|
|
38
|
+
scan_mode: Annotated[
|
|
39
|
+
Annotated[ScanMode, PlainValidator(validate_open_enum(False))],
|
|
40
|
+
pydantic.Field(alias="scanMode"),
|
|
41
|
+
]
|
|
36
42
|
|
|
37
43
|
latest_run_info: Annotated[
|
|
38
44
|
Optional[DatasetMetadataRunInfo], pydantic.Field(alias="latestRunInfo")
|
|
@@ -4,7 +4,12 @@ from __future__ import annotations
|
|
|
4
4
|
from .configgroup import ConfigGroup, ConfigGroupTypedDict
|
|
5
5
|
from .productscore import ProductsCore
|
|
6
6
|
from cribl_control_plane.types import BaseModel
|
|
7
|
-
from cribl_control_plane.utils import
|
|
7
|
+
from cribl_control_plane.utils import (
|
|
8
|
+
FieldMetadata,
|
|
9
|
+
PathParamMetadata,
|
|
10
|
+
validate_open_enum,
|
|
11
|
+
)
|
|
12
|
+
from pydantic.functional_validators import PlainValidator
|
|
8
13
|
from typing import List, Optional
|
|
9
14
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
15
|
|
|
@@ -18,7 +23,7 @@ class DeleteConfigGroupByProductAndIDRequestTypedDict(TypedDict):
|
|
|
18
23
|
|
|
19
24
|
class DeleteConfigGroupByProductAndIDRequest(BaseModel):
|
|
20
25
|
product: Annotated[
|
|
21
|
-
ProductsCore,
|
|
26
|
+
Annotated[ProductsCore, PlainValidator(validate_open_enum(False))],
|
|
22
27
|
FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
|
|
23
28
|
]
|
|
24
29
|
r"""Name of the Cribl product to get the Worker Groups or Edge Fleets for."""
|
|
@@ -9,7 +9,9 @@ from cribl_control_plane.utils import (
|
|
|
9
9
|
FieldMetadata,
|
|
10
10
|
PathParamMetadata,
|
|
11
11
|
QueryParamMetadata,
|
|
12
|
+
validate_open_enum,
|
|
12
13
|
)
|
|
14
|
+
from pydantic.functional_validators import PlainValidator
|
|
13
15
|
from typing import List, Optional
|
|
14
16
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
17
|
|
|
@@ -25,7 +27,7 @@ class GetConfigGroupACLByProductAndIDRequestTypedDict(TypedDict):
|
|
|
25
27
|
|
|
26
28
|
class GetConfigGroupACLByProductAndIDRequest(BaseModel):
|
|
27
29
|
product: Annotated[
|
|
28
|
-
ProductsCore,
|
|
30
|
+
Annotated[ProductsCore, PlainValidator(validate_open_enum(False))],
|
|
29
31
|
FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
|
|
30
32
|
]
|
|
31
33
|
r"""Name of the Cribl product to get the Worker Groups or Edge Fleets for."""
|
|
@@ -36,7 +38,7 @@ class GetConfigGroupACLByProductAndIDRequest(BaseModel):
|
|
|
36
38
|
r"""The <code>id</code> of the Worker Group or Edge Fleet to get the ACL for."""
|
|
37
39
|
|
|
38
40
|
type: Annotated[
|
|
39
|
-
Optional[RbacResource],
|
|
41
|
+
Annotated[Optional[RbacResource], PlainValidator(validate_open_enum(False))],
|
|
40
42
|
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
41
43
|
] = None
|
|
42
44
|
r"""Filter for limiting the response to ACL entries for the specified RBAC resource type."""
|
|
@@ -9,7 +9,9 @@ from cribl_control_plane.utils import (
|
|
|
9
9
|
FieldMetadata,
|
|
10
10
|
PathParamMetadata,
|
|
11
11
|
QueryParamMetadata,
|
|
12
|
+
validate_open_enum,
|
|
12
13
|
)
|
|
14
|
+
from pydantic.functional_validators import PlainValidator
|
|
13
15
|
from typing import List, Optional
|
|
14
16
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
17
|
|
|
@@ -25,7 +27,7 @@ class GetConfigGroupACLTeamsByProductAndIDRequestTypedDict(TypedDict):
|
|
|
25
27
|
|
|
26
28
|
class GetConfigGroupACLTeamsByProductAndIDRequest(BaseModel):
|
|
27
29
|
product: Annotated[
|
|
28
|
-
ProductsCore,
|
|
30
|
+
Annotated[ProductsCore, PlainValidator(validate_open_enum(False))],
|
|
29
31
|
FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
|
|
30
32
|
]
|
|
31
33
|
r"""Name of the Cribl product that contains the Worker Group or Edge Fleet."""
|
|
@@ -36,7 +38,7 @@ class GetConfigGroupACLTeamsByProductAndIDRequest(BaseModel):
|
|
|
36
38
|
r"""The <code>id</code> of the Worker Group or Edge Fleet to get the team ACL for."""
|
|
37
39
|
|
|
38
40
|
type: Annotated[
|
|
39
|
-
Optional[RbacResource],
|
|
41
|
+
Annotated[Optional[RbacResource], PlainValidator(validate_open_enum(False))],
|
|
40
42
|
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
41
43
|
] = None
|
|
42
44
|
r"""Filter for limiting the response to ACL entries for the specified RBAC resource type."""
|
|
@@ -8,7 +8,9 @@ from cribl_control_plane.utils import (
|
|
|
8
8
|
FieldMetadata,
|
|
9
9
|
PathParamMetadata,
|
|
10
10
|
QueryParamMetadata,
|
|
11
|
+
validate_open_enum,
|
|
11
12
|
)
|
|
13
|
+
from pydantic.functional_validators import PlainValidator
|
|
12
14
|
from typing import List, Optional
|
|
13
15
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
14
16
|
|
|
@@ -24,7 +26,7 @@ class GetConfigGroupByProductAndIDRequestTypedDict(TypedDict):
|
|
|
24
26
|
|
|
25
27
|
class GetConfigGroupByProductAndIDRequest(BaseModel):
|
|
26
28
|
product: Annotated[
|
|
27
|
-
ProductsCore,
|
|
29
|
+
Annotated[ProductsCore, PlainValidator(validate_open_enum(False))],
|
|
28
30
|
FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
|
|
29
31
|
]
|
|
30
32
|
r"""Name of the Cribl product to get the Worker Groups or Edge Fleets for."""
|