blaxel 0.64.0__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.
- blaxel/__init__.py +8 -0
- blaxel/agents/__init__.py +5 -0
- blaxel/agents/chain.py +153 -0
- blaxel/agents/chat.py +286 -0
- blaxel/agents/decorator.py +208 -0
- blaxel/agents/thread.py +24 -0
- blaxel/agents/voice/openai.py +255 -0
- blaxel/agents/voice/utils.py +25 -0
- blaxel/api/__init__.py +1 -0
- blaxel/api/agents/__init__.py +0 -0
- blaxel/api/agents/create_agent.py +155 -0
- blaxel/api/agents/delete_agent.py +146 -0
- blaxel/api/agents/get_agent.py +146 -0
- blaxel/api/agents/get_agent_logs.py +151 -0
- blaxel/api/agents/get_agent_metrics.py +150 -0
- blaxel/api/agents/get_agent_trace_ids.py +201 -0
- blaxel/api/agents/list_agent_revisions.py +155 -0
- blaxel/api/agents/list_agents.py +127 -0
- blaxel/api/agents/update_agent.py +168 -0
- blaxel/api/configurations/__init__.py +0 -0
- blaxel/api/configurations/get_configuration.py +122 -0
- blaxel/api/default/__init__.py +0 -0
- blaxel/api/default/get_trace.py +150 -0
- blaxel/api/default/get_trace_ids.py +218 -0
- blaxel/api/default/get_trace_logs.py +186 -0
- blaxel/api/default/list_mcp_hub_definitions.py +127 -0
- blaxel/api/functions/__init__.py +0 -0
- blaxel/api/functions/create_function.py +155 -0
- blaxel/api/functions/delete_function.py +146 -0
- blaxel/api/functions/get_function.py +146 -0
- blaxel/api/functions/get_function_logs.py +151 -0
- blaxel/api/functions/get_function_metrics.py +150 -0
- blaxel/api/functions/get_function_trace_ids.py +201 -0
- blaxel/api/functions/list_function_revisions.py +158 -0
- blaxel/api/functions/list_functions.py +131 -0
- blaxel/api/functions/update_function.py +168 -0
- blaxel/api/integrations/__init__.py +0 -0
- blaxel/api/integrations/create_integration_connection.py +167 -0
- blaxel/api/integrations/delete_integration_connection.py +158 -0
- blaxel/api/integrations/get_integration.py +97 -0
- blaxel/api/integrations/get_integration_connection.py +158 -0
- blaxel/api/integrations/get_integration_connection_model.py +104 -0
- blaxel/api/integrations/get_integration_connection_model_endpoint_configurations.py +97 -0
- blaxel/api/integrations/list_integration_connection_models.py +97 -0
- blaxel/api/integrations/list_integration_connections.py +139 -0
- blaxel/api/integrations/update_integration_connection.py +180 -0
- blaxel/api/invitations/__init__.py +0 -0
- blaxel/api/invitations/list_all_pending_invitations.py +142 -0
- blaxel/api/knowledgebases/__init__.py +0 -0
- blaxel/api/knowledgebases/create_knowledgebase.py +163 -0
- blaxel/api/knowledgebases/delete_knowledgebase.py +154 -0
- blaxel/api/knowledgebases/get_knowledgebase.py +154 -0
- blaxel/api/knowledgebases/list_knowledgebase_revisions.py +158 -0
- blaxel/api/knowledgebases/list_knowledgebases.py +139 -0
- blaxel/api/knowledgebases/update_knowledgebase.py +176 -0
- blaxel/api/locations/__init__.py +0 -0
- blaxel/api/locations/list_locations.py +139 -0
- blaxel/api/metrics/__init__.py +0 -0
- blaxel/api/metrics/get_metrics.py +130 -0
- blaxel/api/models/__init__.py +0 -0
- blaxel/api/models/create_model.py +163 -0
- blaxel/api/models/delete_model.py +154 -0
- blaxel/api/models/get_model.py +154 -0
- blaxel/api/models/get_model_logs.py +155 -0
- blaxel/api/models/get_model_metrics.py +158 -0
- blaxel/api/models/get_model_trace_ids.py +201 -0
- blaxel/api/models/list_model_revisions.py +158 -0
- blaxel/api/models/list_models.py +135 -0
- blaxel/api/models/update_model.py +176 -0
- blaxel/api/policies/__init__.py +0 -0
- blaxel/api/policies/create_policy.py +167 -0
- blaxel/api/policies/delete_policy.py +154 -0
- blaxel/api/policies/get_policy.py +154 -0
- blaxel/api/policies/list_policies.py +139 -0
- blaxel/api/policies/update_policy.py +180 -0
- blaxel/api/privateclusters/__init__.py +0 -0
- blaxel/api/privateclusters/create_private_cluster.py +132 -0
- blaxel/api/privateclusters/delete_private_cluster.py +156 -0
- blaxel/api/privateclusters/get_private_cluster.py +159 -0
- blaxel/api/privateclusters/get_private_cluster_health.py +97 -0
- blaxel/api/privateclusters/list_private_clusters.py +140 -0
- blaxel/api/privateclusters/update_private_cluster.py +156 -0
- blaxel/api/privateclusters/update_private_cluster_health.py +97 -0
- blaxel/api/service_accounts/__init__.py +0 -0
- blaxel/api/service_accounts/create_api_key_for_service_account.py +177 -0
- blaxel/api/service_accounts/create_workspace_service_account.py +170 -0
- blaxel/api/service_accounts/delete_api_key_for_service_account.py +104 -0
- blaxel/api/service_accounts/delete_workspace_service_account.py +160 -0
- blaxel/api/service_accounts/get_workspace_service_accounts.py +141 -0
- blaxel/api/service_accounts/list_api_keys_for_service_account.py +163 -0
- blaxel/api/service_accounts/update_workspace_service_account.py +183 -0
- blaxel/api/store/__init__.py +0 -0
- blaxel/api/store/get_store_agent.py +146 -0
- blaxel/api/store/get_store_function.py +146 -0
- blaxel/api/store/list_store_agents.py +131 -0
- blaxel/api/store/list_store_functions.py +131 -0
- blaxel/api/workspaces/__init__.py +0 -0
- blaxel/api/workspaces/accept_workspace_invitation.py +161 -0
- blaxel/api/workspaces/create_worspace.py +163 -0
- blaxel/api/workspaces/decline_workspace_invitation.py +158 -0
- blaxel/api/workspaces/delete_workspace.py +154 -0
- blaxel/api/workspaces/get_workspace.py +154 -0
- blaxel/api/workspaces/invite_workspace_user.py +174 -0
- blaxel/api/workspaces/leave_workspace.py +161 -0
- blaxel/api/workspaces/list_workspace_users.py +139 -0
- blaxel/api/workspaces/list_workspaces.py +139 -0
- blaxel/api/workspaces/remove_workspace_user.py +101 -0
- blaxel/api/workspaces/update_workspace.py +176 -0
- blaxel/api/workspaces/update_workspace_user_role.py +187 -0
- blaxel/authentication/__init__.py +45 -0
- blaxel/authentication/apikey.py +50 -0
- blaxel/authentication/authentication.py +176 -0
- blaxel/authentication/clientcredentials.py +103 -0
- blaxel/authentication/credentials.py +295 -0
- blaxel/authentication/device_mode.py +197 -0
- blaxel/client.py +281 -0
- blaxel/common/__init__.py +17 -0
- blaxel/common/error.py +27 -0
- blaxel/common/instrumentation.py +317 -0
- blaxel/common/logger.py +60 -0
- blaxel/common/secrets.py +39 -0
- blaxel/common/settings.py +150 -0
- blaxel/common/slugify.py +18 -0
- blaxel/common/utils.py +34 -0
- blaxel/deploy/__init__.py +8 -0
- blaxel/deploy/deploy.py +316 -0
- blaxel/deploy/format.py +46 -0
- blaxel/deploy/parser.py +192 -0
- blaxel/errors.py +16 -0
- blaxel/functions/__init__.py +7 -0
- blaxel/functions/common.py +228 -0
- blaxel/functions/decorator.py +64 -0
- blaxel/functions/local/local.py +48 -0
- blaxel/functions/mcp/client.py +96 -0
- blaxel/functions/mcp/mcp.py +168 -0
- blaxel/functions/mcp/utils.py +56 -0
- blaxel/functions/remote/remote.py +183 -0
- blaxel/models/__init__.py +233 -0
- blaxel/models/acl.py +133 -0
- blaxel/models/agent.py +126 -0
- blaxel/models/agent_chain.py +88 -0
- blaxel/models/agent_spec.py +346 -0
- blaxel/models/api_key.py +142 -0
- blaxel/models/configuration.py +85 -0
- blaxel/models/continent.py +70 -0
- blaxel/models/core_event.py +97 -0
- blaxel/models/core_spec.py +249 -0
- blaxel/models/core_spec_configurations.py +77 -0
- blaxel/models/country.py +70 -0
- blaxel/models/create_api_key_for_service_account_body.py +69 -0
- blaxel/models/create_workspace_service_account_body.py +71 -0
- blaxel/models/create_workspace_service_account_response_200.py +105 -0
- blaxel/models/delete_workspace_service_account_response_200.py +96 -0
- blaxel/models/entrypoint.py +96 -0
- blaxel/models/entrypoint_env.py +45 -0
- blaxel/models/flavor.py +70 -0
- blaxel/models/form.py +120 -0
- blaxel/models/form_config.py +45 -0
- blaxel/models/form_oauthomitempty.py +45 -0
- blaxel/models/form_secrets.py +45 -0
- blaxel/models/function.py +126 -0
- blaxel/models/function_kit.py +97 -0
- blaxel/models/function_spec.py +310 -0
- blaxel/models/get_trace_ids_response_200.py +45 -0
- blaxel/models/get_trace_logs_response_200.py +45 -0
- blaxel/models/get_trace_response_200.py +45 -0
- blaxel/models/get_workspace_service_accounts_response_200_item.py +96 -0
- blaxel/models/histogram_bucket.py +79 -0
- blaxel/models/histogram_stats.py +88 -0
- blaxel/models/integration_connection.py +96 -0
- blaxel/models/integration_connection_spec.py +114 -0
- blaxel/models/integration_connection_spec_config.py +45 -0
- blaxel/models/integration_connection_spec_secret.py +45 -0
- blaxel/models/integration_model.py +162 -0
- blaxel/models/integration_repository.py +88 -0
- blaxel/models/invite_workspace_user_body.py +60 -0
- blaxel/models/knowledgebase.py +126 -0
- blaxel/models/knowledgebase_spec.py +163 -0
- blaxel/models/knowledgebase_spec_options.py +45 -0
- blaxel/models/last_n_requests_metric.py +79 -0
- blaxel/models/latency_metric.py +144 -0
- blaxel/models/location_response.py +113 -0
- blaxel/models/mcp_definition.py +188 -0
- blaxel/models/mcp_definition_entrypoint.py +45 -0
- blaxel/models/mcp_definition_form.py +45 -0
- blaxel/models/metadata.py +139 -0
- blaxel/models/metadata_labels.py +45 -0
- blaxel/models/metric.py +79 -0
- blaxel/models/metrics.py +169 -0
- blaxel/models/metrics_models.py +45 -0
- blaxel/models/metrics_request_total_per_code.py +45 -0
- blaxel/models/metrics_rps_per_code.py +45 -0
- blaxel/models/model.py +126 -0
- blaxel/models/model_private_cluster.py +79 -0
- blaxel/models/model_spec.py +249 -0
- blaxel/models/o_auth.py +72 -0
- blaxel/models/owner_fields.py +70 -0
- blaxel/models/pending_invitation.py +124 -0
- blaxel/models/pending_invitation_accept.py +85 -0
- blaxel/models/pending_invitation_render.py +147 -0
- blaxel/models/pending_invitation_render_invited_by.py +88 -0
- blaxel/models/pending_invitation_render_workspace.py +70 -0
- blaxel/models/pending_invitation_workspace_details.py +72 -0
- blaxel/models/pod_template_spec.py +45 -0
- blaxel/models/policy.py +96 -0
- blaxel/models/policy_location.py +70 -0
- blaxel/models/policy_max_tokens.py +106 -0
- blaxel/models/policy_spec.py +151 -0
- blaxel/models/private_cluster.py +183 -0
- blaxel/models/private_location.py +61 -0
- blaxel/models/repository.py +70 -0
- blaxel/models/request_duration_over_time_metric.py +97 -0
- blaxel/models/request_duration_over_time_metrics.py +80 -0
- blaxel/models/request_total_by_origin_metric.py +115 -0
- blaxel/models/request_total_by_origin_metric_request_total_by_origin.py +45 -0
- blaxel/models/request_total_by_origin_metric_request_total_by_origin_and_code.py +45 -0
- blaxel/models/request_total_metric.py +123 -0
- blaxel/models/request_total_metric_request_total_per_code.py +45 -0
- blaxel/models/request_total_metric_rps_per_code.py +45 -0
- blaxel/models/resource_log.py +79 -0
- blaxel/models/resource_metrics.py +270 -0
- blaxel/models/resource_metrics_request_total_per_code.py +45 -0
- blaxel/models/resource_metrics_rps_per_code.py +45 -0
- blaxel/models/revision_configuration.py +97 -0
- blaxel/models/revision_metadata.py +124 -0
- blaxel/models/runtime.py +196 -0
- blaxel/models/runtime_startup_probe.py +45 -0
- blaxel/models/serverless_config.py +80 -0
- blaxel/models/spec_configuration.py +70 -0
- blaxel/models/store_agent.py +178 -0
- blaxel/models/store_agent_labels.py +45 -0
- blaxel/models/store_configuration.py +151 -0
- blaxel/models/store_configuration_option.py +79 -0
- blaxel/models/store_function.py +211 -0
- blaxel/models/store_function_kit.py +97 -0
- blaxel/models/store_function_labels.py +45 -0
- blaxel/models/store_function_parameter.py +88 -0
- blaxel/models/time_fields.py +70 -0
- blaxel/models/token_rate_metric.py +88 -0
- blaxel/models/token_rate_metrics.py +120 -0
- blaxel/models/token_total_metric.py +106 -0
- blaxel/models/trace_ids_response.py +45 -0
- blaxel/models/update_workspace_service_account_body.py +69 -0
- blaxel/models/update_workspace_service_account_response_200.py +96 -0
- blaxel/models/update_workspace_user_role_body.py +60 -0
- blaxel/models/websocket_channel.py +88 -0
- blaxel/models/workspace.py +148 -0
- blaxel/models/workspace_labels.py +45 -0
- blaxel/models/workspace_user.py +115 -0
- blaxel/py.typed +1 -0
- blaxel/run.py +108 -0
- blaxel/serve/app.py +131 -0
- blaxel/serve/middlewares/__init__.py +10 -0
- blaxel/serve/middlewares/accesslog.py +32 -0
- blaxel/serve/middlewares/processtime.py +28 -0
- blaxel/types.py +46 -0
- blaxel-0.64.0.dist-info/METADATA +96 -0
- blaxel-0.64.0.dist-info/RECORD +261 -0
- blaxel-0.64.0.dist-info/WHEEL +4 -0
- blaxel-0.64.0.dist-info/entry_points.txt +2 -0
- blaxel-0.64.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,310 @@
|
|
1
|
+
from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
|
2
|
+
|
3
|
+
from attrs import define as _attrs_define
|
4
|
+
from attrs import field as _attrs_field
|
5
|
+
|
6
|
+
from ..types import UNSET, Unset
|
7
|
+
|
8
|
+
if TYPE_CHECKING:
|
9
|
+
from ..models.core_spec_configurations import CoreSpecConfigurations
|
10
|
+
from ..models.flavor import Flavor
|
11
|
+
from ..models.function_kit import FunctionKit
|
12
|
+
from ..models.model_private_cluster import ModelPrivateCluster
|
13
|
+
from ..models.pod_template_spec import PodTemplateSpec
|
14
|
+
from ..models.revision_configuration import RevisionConfiguration
|
15
|
+
from ..models.runtime import Runtime
|
16
|
+
from ..models.serverless_config import ServerlessConfig
|
17
|
+
from ..models.store_function_parameter import StoreFunctionParameter
|
18
|
+
|
19
|
+
|
20
|
+
T = TypeVar("T", bound="FunctionSpec")
|
21
|
+
|
22
|
+
|
23
|
+
@_attrs_define
|
24
|
+
class FunctionSpec:
|
25
|
+
"""Function specification
|
26
|
+
|
27
|
+
Attributes:
|
28
|
+
configurations (Union[Unset, CoreSpecConfigurations]): Optional configurations for the object
|
29
|
+
enabled (Union[Unset, bool]): Enable or disable the agent
|
30
|
+
flavors (Union[Unset, list['Flavor']]): Types of hardware available for deployments
|
31
|
+
integration_connections (Union[Unset, list[str]]):
|
32
|
+
pod_template (Union[Unset, PodTemplateSpec]): Pod template specification
|
33
|
+
policies (Union[Unset, list[str]]):
|
34
|
+
private_clusters (Union[Unset, ModelPrivateCluster]): Private cluster where the model deployment is deployed
|
35
|
+
revision (Union[Unset, RevisionConfiguration]): Revision configuration
|
36
|
+
runtime (Union[Unset, Runtime]): Set of configurations for a deployment
|
37
|
+
sandbox (Union[Unset, bool]): Sandbox mode
|
38
|
+
serverless_config (Union[Unset, ServerlessConfig]): Configuration for a serverless deployment
|
39
|
+
description (Union[Unset, str]): Function description, very important for the agent function to work with an LLM
|
40
|
+
kit (Union[Unset, list['FunctionKit']]): The kit of the function deployment
|
41
|
+
parameters (Union[Unset, list['StoreFunctionParameter']]): Function parameters, for your function to be callable
|
42
|
+
with Agent
|
43
|
+
store_id (Union[Unset, str]): Store id
|
44
|
+
"""
|
45
|
+
|
46
|
+
configurations: Union[Unset, "CoreSpecConfigurations"] = UNSET
|
47
|
+
enabled: Union[Unset, bool] = UNSET
|
48
|
+
flavors: Union[Unset, list["Flavor"]] = UNSET
|
49
|
+
integration_connections: Union[Unset, list[str]] = UNSET
|
50
|
+
pod_template: Union[Unset, "PodTemplateSpec"] = UNSET
|
51
|
+
policies: Union[Unset, list[str]] = UNSET
|
52
|
+
private_clusters: Union[Unset, "ModelPrivateCluster"] = UNSET
|
53
|
+
revision: Union[Unset, "RevisionConfiguration"] = UNSET
|
54
|
+
runtime: Union[Unset, "Runtime"] = UNSET
|
55
|
+
sandbox: Union[Unset, bool] = UNSET
|
56
|
+
serverless_config: Union[Unset, "ServerlessConfig"] = UNSET
|
57
|
+
description: Union[Unset, str] = UNSET
|
58
|
+
kit: Union[Unset, list["FunctionKit"]] = UNSET
|
59
|
+
parameters: Union[Unset, list["StoreFunctionParameter"]] = UNSET
|
60
|
+
store_id: Union[Unset, str] = UNSET
|
61
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
62
|
+
|
63
|
+
def to_dict(self) -> dict[str, Any]:
|
64
|
+
configurations: Union[Unset, dict[str, Any]] = UNSET
|
65
|
+
if (
|
66
|
+
self.configurations
|
67
|
+
and not isinstance(self.configurations, Unset)
|
68
|
+
and not isinstance(self.configurations, dict)
|
69
|
+
):
|
70
|
+
configurations = self.configurations.to_dict()
|
71
|
+
elif self.configurations and isinstance(self.configurations, dict):
|
72
|
+
configurations = self.configurations
|
73
|
+
|
74
|
+
enabled = self.enabled
|
75
|
+
|
76
|
+
flavors: Union[Unset, list[dict[str, Any]]] = UNSET
|
77
|
+
if not isinstance(self.flavors, Unset):
|
78
|
+
flavors = []
|
79
|
+
for componentsschemas_flavors_item_data in self.flavors:
|
80
|
+
componentsschemas_flavors_item = componentsschemas_flavors_item_data.to_dict()
|
81
|
+
flavors.append(componentsschemas_flavors_item)
|
82
|
+
|
83
|
+
integration_connections: Union[Unset, list[str]] = UNSET
|
84
|
+
if not isinstance(self.integration_connections, Unset):
|
85
|
+
integration_connections = self.integration_connections
|
86
|
+
|
87
|
+
pod_template: Union[Unset, dict[str, Any]] = UNSET
|
88
|
+
if self.pod_template and not isinstance(self.pod_template, Unset) and not isinstance(self.pod_template, dict):
|
89
|
+
pod_template = self.pod_template.to_dict()
|
90
|
+
elif self.pod_template and isinstance(self.pod_template, dict):
|
91
|
+
pod_template = self.pod_template
|
92
|
+
|
93
|
+
policies: Union[Unset, list[str]] = UNSET
|
94
|
+
if not isinstance(self.policies, Unset):
|
95
|
+
policies = self.policies
|
96
|
+
|
97
|
+
private_clusters: Union[Unset, dict[str, Any]] = UNSET
|
98
|
+
if (
|
99
|
+
self.private_clusters
|
100
|
+
and not isinstance(self.private_clusters, Unset)
|
101
|
+
and not isinstance(self.private_clusters, dict)
|
102
|
+
):
|
103
|
+
private_clusters = self.private_clusters.to_dict()
|
104
|
+
elif self.private_clusters and isinstance(self.private_clusters, dict):
|
105
|
+
private_clusters = self.private_clusters
|
106
|
+
|
107
|
+
revision: Union[Unset, dict[str, Any]] = UNSET
|
108
|
+
if self.revision and not isinstance(self.revision, Unset) and not isinstance(self.revision, dict):
|
109
|
+
revision = self.revision.to_dict()
|
110
|
+
elif self.revision and isinstance(self.revision, dict):
|
111
|
+
revision = self.revision
|
112
|
+
|
113
|
+
runtime: Union[Unset, dict[str, Any]] = UNSET
|
114
|
+
if self.runtime and not isinstance(self.runtime, Unset) and not isinstance(self.runtime, dict):
|
115
|
+
runtime = self.runtime.to_dict()
|
116
|
+
elif self.runtime and isinstance(self.runtime, dict):
|
117
|
+
runtime = self.runtime
|
118
|
+
|
119
|
+
sandbox = self.sandbox
|
120
|
+
|
121
|
+
serverless_config: Union[Unset, dict[str, Any]] = UNSET
|
122
|
+
if (
|
123
|
+
self.serverless_config
|
124
|
+
and not isinstance(self.serverless_config, Unset)
|
125
|
+
and not isinstance(self.serverless_config, dict)
|
126
|
+
):
|
127
|
+
serverless_config = self.serverless_config.to_dict()
|
128
|
+
elif self.serverless_config and isinstance(self.serverless_config, dict):
|
129
|
+
serverless_config = self.serverless_config
|
130
|
+
|
131
|
+
description = self.description
|
132
|
+
|
133
|
+
kit: Union[Unset, list[dict[str, Any]]] = UNSET
|
134
|
+
if not isinstance(self.kit, Unset):
|
135
|
+
kit = []
|
136
|
+
for kit_item_data in self.kit:
|
137
|
+
kit_item = kit_item_data.to_dict()
|
138
|
+
kit.append(kit_item)
|
139
|
+
|
140
|
+
parameters: Union[Unset, list[dict[str, Any]]] = UNSET
|
141
|
+
if not isinstance(self.parameters, Unset):
|
142
|
+
parameters = []
|
143
|
+
for parameters_item_data in self.parameters:
|
144
|
+
parameters_item = parameters_item_data.to_dict()
|
145
|
+
parameters.append(parameters_item)
|
146
|
+
|
147
|
+
store_id = self.store_id
|
148
|
+
|
149
|
+
field_dict: dict[str, Any] = {}
|
150
|
+
field_dict.update(self.additional_properties)
|
151
|
+
field_dict.update({})
|
152
|
+
if configurations is not UNSET:
|
153
|
+
field_dict["configurations"] = configurations
|
154
|
+
if enabled is not UNSET:
|
155
|
+
field_dict["enabled"] = enabled
|
156
|
+
if flavors is not UNSET:
|
157
|
+
field_dict["flavors"] = flavors
|
158
|
+
if integration_connections is not UNSET:
|
159
|
+
field_dict["integrationConnections"] = integration_connections
|
160
|
+
if pod_template is not UNSET:
|
161
|
+
field_dict["podTemplate"] = pod_template
|
162
|
+
if policies is not UNSET:
|
163
|
+
field_dict["policies"] = policies
|
164
|
+
if private_clusters is not UNSET:
|
165
|
+
field_dict["privateClusters"] = private_clusters
|
166
|
+
if revision is not UNSET:
|
167
|
+
field_dict["revision"] = revision
|
168
|
+
if runtime is not UNSET:
|
169
|
+
field_dict["runtime"] = runtime
|
170
|
+
if sandbox is not UNSET:
|
171
|
+
field_dict["sandbox"] = sandbox
|
172
|
+
if serverless_config is not UNSET:
|
173
|
+
field_dict["serverlessConfig"] = serverless_config
|
174
|
+
if description is not UNSET:
|
175
|
+
field_dict["description"] = description
|
176
|
+
if kit is not UNSET:
|
177
|
+
field_dict["kit"] = kit
|
178
|
+
if parameters is not UNSET:
|
179
|
+
field_dict["parameters"] = parameters
|
180
|
+
if store_id is not UNSET:
|
181
|
+
field_dict["storeId"] = store_id
|
182
|
+
|
183
|
+
return field_dict
|
184
|
+
|
185
|
+
@classmethod
|
186
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
187
|
+
from ..models.core_spec_configurations import CoreSpecConfigurations
|
188
|
+
from ..models.flavor import Flavor
|
189
|
+
from ..models.function_kit import FunctionKit
|
190
|
+
from ..models.model_private_cluster import ModelPrivateCluster
|
191
|
+
from ..models.pod_template_spec import PodTemplateSpec
|
192
|
+
from ..models.revision_configuration import RevisionConfiguration
|
193
|
+
from ..models.runtime import Runtime
|
194
|
+
from ..models.serverless_config import ServerlessConfig
|
195
|
+
from ..models.store_function_parameter import StoreFunctionParameter
|
196
|
+
|
197
|
+
if not src_dict:
|
198
|
+
return None
|
199
|
+
d = src_dict.copy()
|
200
|
+
_configurations = d.pop("configurations", UNSET)
|
201
|
+
configurations: Union[Unset, CoreSpecConfigurations]
|
202
|
+
if isinstance(_configurations, Unset):
|
203
|
+
configurations = UNSET
|
204
|
+
else:
|
205
|
+
configurations = CoreSpecConfigurations.from_dict(_configurations)
|
206
|
+
|
207
|
+
enabled = d.pop("enabled", UNSET)
|
208
|
+
|
209
|
+
flavors = []
|
210
|
+
_flavors = d.pop("flavors", UNSET)
|
211
|
+
for componentsschemas_flavors_item_data in _flavors or []:
|
212
|
+
componentsschemas_flavors_item = Flavor.from_dict(componentsschemas_flavors_item_data)
|
213
|
+
|
214
|
+
flavors.append(componentsschemas_flavors_item)
|
215
|
+
|
216
|
+
integration_connections = cast(list[str], d.pop("integrationConnections", UNSET))
|
217
|
+
|
218
|
+
_pod_template = d.pop("podTemplate", UNSET)
|
219
|
+
pod_template: Union[Unset, PodTemplateSpec]
|
220
|
+
if isinstance(_pod_template, Unset):
|
221
|
+
pod_template = UNSET
|
222
|
+
else:
|
223
|
+
pod_template = PodTemplateSpec.from_dict(_pod_template)
|
224
|
+
|
225
|
+
policies = cast(list[str], d.pop("policies", UNSET))
|
226
|
+
|
227
|
+
_private_clusters = d.pop("privateClusters", UNSET)
|
228
|
+
private_clusters: Union[Unset, ModelPrivateCluster]
|
229
|
+
if isinstance(_private_clusters, Unset):
|
230
|
+
private_clusters = UNSET
|
231
|
+
else:
|
232
|
+
private_clusters = ModelPrivateCluster.from_dict(_private_clusters)
|
233
|
+
|
234
|
+
_revision = d.pop("revision", UNSET)
|
235
|
+
revision: Union[Unset, RevisionConfiguration]
|
236
|
+
if isinstance(_revision, Unset):
|
237
|
+
revision = UNSET
|
238
|
+
else:
|
239
|
+
revision = RevisionConfiguration.from_dict(_revision)
|
240
|
+
|
241
|
+
_runtime = d.pop("runtime", UNSET)
|
242
|
+
runtime: Union[Unset, Runtime]
|
243
|
+
if isinstance(_runtime, Unset):
|
244
|
+
runtime = UNSET
|
245
|
+
else:
|
246
|
+
runtime = Runtime.from_dict(_runtime)
|
247
|
+
|
248
|
+
sandbox = d.pop("sandbox", UNSET)
|
249
|
+
|
250
|
+
_serverless_config = d.pop("serverlessConfig", UNSET)
|
251
|
+
serverless_config: Union[Unset, ServerlessConfig]
|
252
|
+
if isinstance(_serverless_config, Unset):
|
253
|
+
serverless_config = UNSET
|
254
|
+
else:
|
255
|
+
serverless_config = ServerlessConfig.from_dict(_serverless_config)
|
256
|
+
|
257
|
+
description = d.pop("description", UNSET)
|
258
|
+
|
259
|
+
kit = []
|
260
|
+
_kit = d.pop("kit", UNSET)
|
261
|
+
for kit_item_data in _kit or []:
|
262
|
+
kit_item = FunctionKit.from_dict(kit_item_data)
|
263
|
+
|
264
|
+
kit.append(kit_item)
|
265
|
+
|
266
|
+
parameters = []
|
267
|
+
_parameters = d.pop("parameters", UNSET)
|
268
|
+
for parameters_item_data in _parameters or []:
|
269
|
+
parameters_item = StoreFunctionParameter.from_dict(parameters_item_data)
|
270
|
+
|
271
|
+
parameters.append(parameters_item)
|
272
|
+
|
273
|
+
store_id = d.pop("storeId", UNSET)
|
274
|
+
|
275
|
+
function_spec = cls(
|
276
|
+
configurations=configurations,
|
277
|
+
enabled=enabled,
|
278
|
+
flavors=flavors,
|
279
|
+
integration_connections=integration_connections,
|
280
|
+
pod_template=pod_template,
|
281
|
+
policies=policies,
|
282
|
+
private_clusters=private_clusters,
|
283
|
+
revision=revision,
|
284
|
+
runtime=runtime,
|
285
|
+
sandbox=sandbox,
|
286
|
+
serverless_config=serverless_config,
|
287
|
+
description=description,
|
288
|
+
kit=kit,
|
289
|
+
parameters=parameters,
|
290
|
+
store_id=store_id,
|
291
|
+
)
|
292
|
+
|
293
|
+
function_spec.additional_properties = d
|
294
|
+
return function_spec
|
295
|
+
|
296
|
+
@property
|
297
|
+
def additional_keys(self) -> list[str]:
|
298
|
+
return list(self.additional_properties.keys())
|
299
|
+
|
300
|
+
def __getitem__(self, key: str) -> Any:
|
301
|
+
return self.additional_properties[key]
|
302
|
+
|
303
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
304
|
+
self.additional_properties[key] = value
|
305
|
+
|
306
|
+
def __delitem__(self, key: str) -> None:
|
307
|
+
del self.additional_properties[key]
|
308
|
+
|
309
|
+
def __contains__(self, key: str) -> bool:
|
310
|
+
return key in self.additional_properties
|
@@ -0,0 +1,45 @@
|
|
1
|
+
from typing import Any, TypeVar
|
2
|
+
|
3
|
+
from attrs import define as _attrs_define
|
4
|
+
from attrs import field as _attrs_field
|
5
|
+
|
6
|
+
T = TypeVar("T", bound="GetTraceIdsResponse200")
|
7
|
+
|
8
|
+
|
9
|
+
@_attrs_define
|
10
|
+
class GetTraceIdsResponse200:
|
11
|
+
""" """
|
12
|
+
|
13
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
14
|
+
|
15
|
+
def to_dict(self) -> dict[str, Any]:
|
16
|
+
field_dict: dict[str, Any] = {}
|
17
|
+
field_dict.update(self.additional_properties)
|
18
|
+
|
19
|
+
return field_dict
|
20
|
+
|
21
|
+
@classmethod
|
22
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
23
|
+
if not src_dict:
|
24
|
+
return None
|
25
|
+
d = src_dict.copy()
|
26
|
+
get_trace_ids_response_200 = cls()
|
27
|
+
|
28
|
+
get_trace_ids_response_200.additional_properties = d
|
29
|
+
return get_trace_ids_response_200
|
30
|
+
|
31
|
+
@property
|
32
|
+
def additional_keys(self) -> list[str]:
|
33
|
+
return list(self.additional_properties.keys())
|
34
|
+
|
35
|
+
def __getitem__(self, key: str) -> Any:
|
36
|
+
return self.additional_properties[key]
|
37
|
+
|
38
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
39
|
+
self.additional_properties[key] = value
|
40
|
+
|
41
|
+
def __delitem__(self, key: str) -> None:
|
42
|
+
del self.additional_properties[key]
|
43
|
+
|
44
|
+
def __contains__(self, key: str) -> bool:
|
45
|
+
return key in self.additional_properties
|
@@ -0,0 +1,45 @@
|
|
1
|
+
from typing import Any, TypeVar
|
2
|
+
|
3
|
+
from attrs import define as _attrs_define
|
4
|
+
from attrs import field as _attrs_field
|
5
|
+
|
6
|
+
T = TypeVar("T", bound="GetTraceLogsResponse200")
|
7
|
+
|
8
|
+
|
9
|
+
@_attrs_define
|
10
|
+
class GetTraceLogsResponse200:
|
11
|
+
""" """
|
12
|
+
|
13
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
14
|
+
|
15
|
+
def to_dict(self) -> dict[str, Any]:
|
16
|
+
field_dict: dict[str, Any] = {}
|
17
|
+
field_dict.update(self.additional_properties)
|
18
|
+
|
19
|
+
return field_dict
|
20
|
+
|
21
|
+
@classmethod
|
22
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
23
|
+
if not src_dict:
|
24
|
+
return None
|
25
|
+
d = src_dict.copy()
|
26
|
+
get_trace_logs_response_200 = cls()
|
27
|
+
|
28
|
+
get_trace_logs_response_200.additional_properties = d
|
29
|
+
return get_trace_logs_response_200
|
30
|
+
|
31
|
+
@property
|
32
|
+
def additional_keys(self) -> list[str]:
|
33
|
+
return list(self.additional_properties.keys())
|
34
|
+
|
35
|
+
def __getitem__(self, key: str) -> Any:
|
36
|
+
return self.additional_properties[key]
|
37
|
+
|
38
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
39
|
+
self.additional_properties[key] = value
|
40
|
+
|
41
|
+
def __delitem__(self, key: str) -> None:
|
42
|
+
del self.additional_properties[key]
|
43
|
+
|
44
|
+
def __contains__(self, key: str) -> bool:
|
45
|
+
return key in self.additional_properties
|
@@ -0,0 +1,45 @@
|
|
1
|
+
from typing import Any, TypeVar
|
2
|
+
|
3
|
+
from attrs import define as _attrs_define
|
4
|
+
from attrs import field as _attrs_field
|
5
|
+
|
6
|
+
T = TypeVar("T", bound="GetTraceResponse200")
|
7
|
+
|
8
|
+
|
9
|
+
@_attrs_define
|
10
|
+
class GetTraceResponse200:
|
11
|
+
""" """
|
12
|
+
|
13
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
14
|
+
|
15
|
+
def to_dict(self) -> dict[str, Any]:
|
16
|
+
field_dict: dict[str, Any] = {}
|
17
|
+
field_dict.update(self.additional_properties)
|
18
|
+
|
19
|
+
return field_dict
|
20
|
+
|
21
|
+
@classmethod
|
22
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
23
|
+
if not src_dict:
|
24
|
+
return None
|
25
|
+
d = src_dict.copy()
|
26
|
+
get_trace_response_200 = cls()
|
27
|
+
|
28
|
+
get_trace_response_200.additional_properties = d
|
29
|
+
return get_trace_response_200
|
30
|
+
|
31
|
+
@property
|
32
|
+
def additional_keys(self) -> list[str]:
|
33
|
+
return list(self.additional_properties.keys())
|
34
|
+
|
35
|
+
def __getitem__(self, key: str) -> Any:
|
36
|
+
return self.additional_properties[key]
|
37
|
+
|
38
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
39
|
+
self.additional_properties[key] = value
|
40
|
+
|
41
|
+
def __delitem__(self, key: str) -> None:
|
42
|
+
del self.additional_properties[key]
|
43
|
+
|
44
|
+
def __contains__(self, key: str) -> bool:
|
45
|
+
return key in self.additional_properties
|
@@ -0,0 +1,96 @@
|
|
1
|
+
from typing import Any, TypeVar, Union
|
2
|
+
|
3
|
+
from attrs import define as _attrs_define
|
4
|
+
from attrs import field as _attrs_field
|
5
|
+
|
6
|
+
from ..types import UNSET, Unset
|
7
|
+
|
8
|
+
T = TypeVar("T", bound="GetWorkspaceServiceAccountsResponse200Item")
|
9
|
+
|
10
|
+
|
11
|
+
@_attrs_define
|
12
|
+
class GetWorkspaceServiceAccountsResponse200Item:
|
13
|
+
"""
|
14
|
+
Attributes:
|
15
|
+
client_id (Union[Unset, str]): Service account client ID
|
16
|
+
created_at (Union[Unset, str]): Creation timestamp
|
17
|
+
description (Union[Unset, str]): Service account description
|
18
|
+
name (Union[Unset, str]): Service account name
|
19
|
+
updated_at (Union[Unset, str]): Last update timestamp
|
20
|
+
"""
|
21
|
+
|
22
|
+
client_id: Union[Unset, str] = UNSET
|
23
|
+
created_at: Union[Unset, str] = UNSET
|
24
|
+
description: Union[Unset, str] = UNSET
|
25
|
+
name: Union[Unset, str] = UNSET
|
26
|
+
updated_at: Union[Unset, str] = UNSET
|
27
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
28
|
+
|
29
|
+
def to_dict(self) -> dict[str, Any]:
|
30
|
+
client_id = self.client_id
|
31
|
+
|
32
|
+
created_at = self.created_at
|
33
|
+
|
34
|
+
description = self.description
|
35
|
+
|
36
|
+
name = self.name
|
37
|
+
|
38
|
+
updated_at = self.updated_at
|
39
|
+
|
40
|
+
field_dict: dict[str, Any] = {}
|
41
|
+
field_dict.update(self.additional_properties)
|
42
|
+
field_dict.update({})
|
43
|
+
if client_id is not UNSET:
|
44
|
+
field_dict["client_id"] = client_id
|
45
|
+
if created_at is not UNSET:
|
46
|
+
field_dict["created_at"] = created_at
|
47
|
+
if description is not UNSET:
|
48
|
+
field_dict["description"] = description
|
49
|
+
if name is not UNSET:
|
50
|
+
field_dict["name"] = name
|
51
|
+
if updated_at is not UNSET:
|
52
|
+
field_dict["updated_at"] = updated_at
|
53
|
+
|
54
|
+
return field_dict
|
55
|
+
|
56
|
+
@classmethod
|
57
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
58
|
+
if not src_dict:
|
59
|
+
return None
|
60
|
+
d = src_dict.copy()
|
61
|
+
client_id = d.pop("client_id", UNSET)
|
62
|
+
|
63
|
+
created_at = d.pop("created_at", UNSET)
|
64
|
+
|
65
|
+
description = d.pop("description", UNSET)
|
66
|
+
|
67
|
+
name = d.pop("name", UNSET)
|
68
|
+
|
69
|
+
updated_at = d.pop("updated_at", UNSET)
|
70
|
+
|
71
|
+
get_workspace_service_accounts_response_200_item = cls(
|
72
|
+
client_id=client_id,
|
73
|
+
created_at=created_at,
|
74
|
+
description=description,
|
75
|
+
name=name,
|
76
|
+
updated_at=updated_at,
|
77
|
+
)
|
78
|
+
|
79
|
+
get_workspace_service_accounts_response_200_item.additional_properties = d
|
80
|
+
return get_workspace_service_accounts_response_200_item
|
81
|
+
|
82
|
+
@property
|
83
|
+
def additional_keys(self) -> list[str]:
|
84
|
+
return list(self.additional_properties.keys())
|
85
|
+
|
86
|
+
def __getitem__(self, key: str) -> Any:
|
87
|
+
return self.additional_properties[key]
|
88
|
+
|
89
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
90
|
+
self.additional_properties[key] = value
|
91
|
+
|
92
|
+
def __delitem__(self, key: str) -> None:
|
93
|
+
del self.additional_properties[key]
|
94
|
+
|
95
|
+
def __contains__(self, key: str) -> bool:
|
96
|
+
return key in self.additional_properties
|
@@ -0,0 +1,79 @@
|
|
1
|
+
from typing import Any, TypeVar, Union
|
2
|
+
|
3
|
+
from attrs import define as _attrs_define
|
4
|
+
from attrs import field as _attrs_field
|
5
|
+
|
6
|
+
from ..types import UNSET, Unset
|
7
|
+
|
8
|
+
T = TypeVar("T", bound="HistogramBucket")
|
9
|
+
|
10
|
+
|
11
|
+
@_attrs_define
|
12
|
+
class HistogramBucket:
|
13
|
+
"""Histogram bucket
|
14
|
+
|
15
|
+
Attributes:
|
16
|
+
count (Union[Unset, int]): Count
|
17
|
+
end (Union[Unset, float]): End
|
18
|
+
start (Union[Unset, float]): Start
|
19
|
+
"""
|
20
|
+
|
21
|
+
count: Union[Unset, int] = UNSET
|
22
|
+
end: Union[Unset, float] = UNSET
|
23
|
+
start: Union[Unset, float] = UNSET
|
24
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
25
|
+
|
26
|
+
def to_dict(self) -> dict[str, Any]:
|
27
|
+
count = self.count
|
28
|
+
|
29
|
+
end = self.end
|
30
|
+
|
31
|
+
start = self.start
|
32
|
+
|
33
|
+
field_dict: dict[str, Any] = {}
|
34
|
+
field_dict.update(self.additional_properties)
|
35
|
+
field_dict.update({})
|
36
|
+
if count is not UNSET:
|
37
|
+
field_dict["count"] = count
|
38
|
+
if end is not UNSET:
|
39
|
+
field_dict["end"] = end
|
40
|
+
if start is not UNSET:
|
41
|
+
field_dict["start"] = start
|
42
|
+
|
43
|
+
return field_dict
|
44
|
+
|
45
|
+
@classmethod
|
46
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
47
|
+
if not src_dict:
|
48
|
+
return None
|
49
|
+
d = src_dict.copy()
|
50
|
+
count = d.pop("count", UNSET)
|
51
|
+
|
52
|
+
end = d.pop("end", UNSET)
|
53
|
+
|
54
|
+
start = d.pop("start", UNSET)
|
55
|
+
|
56
|
+
histogram_bucket = cls(
|
57
|
+
count=count,
|
58
|
+
end=end,
|
59
|
+
start=start,
|
60
|
+
)
|
61
|
+
|
62
|
+
histogram_bucket.additional_properties = d
|
63
|
+
return histogram_bucket
|
64
|
+
|
65
|
+
@property
|
66
|
+
def additional_keys(self) -> list[str]:
|
67
|
+
return list(self.additional_properties.keys())
|
68
|
+
|
69
|
+
def __getitem__(self, key: str) -> Any:
|
70
|
+
return self.additional_properties[key]
|
71
|
+
|
72
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
73
|
+
self.additional_properties[key] = value
|
74
|
+
|
75
|
+
def __delitem__(self, key: str) -> None:
|
76
|
+
del self.additional_properties[key]
|
77
|
+
|
78
|
+
def __contains__(self, key: str) -> bool:
|
79
|
+
return key in self.additional_properties
|