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,126 @@
|
|
1
|
+
from typing import TYPE_CHECKING, 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
|
+
if TYPE_CHECKING:
|
9
|
+
from ..models.core_event import CoreEvent
|
10
|
+
from ..models.knowledgebase_spec import KnowledgebaseSpec
|
11
|
+
from ..models.metadata import Metadata
|
12
|
+
|
13
|
+
|
14
|
+
T = TypeVar("T", bound="Knowledgebase")
|
15
|
+
|
16
|
+
|
17
|
+
@_attrs_define
|
18
|
+
class Knowledgebase:
|
19
|
+
"""Knowledgebase
|
20
|
+
|
21
|
+
Attributes:
|
22
|
+
events (Union[Unset, list['CoreEvent']]): Core events
|
23
|
+
metadata (Union[Unset, Metadata]): Metadata
|
24
|
+
spec (Union[Unset, KnowledgebaseSpec]): Knowledgebase specification
|
25
|
+
status (Union[Unset, str]): Knowledgebase status
|
26
|
+
"""
|
27
|
+
|
28
|
+
events: Union[Unset, list["CoreEvent"]] = UNSET
|
29
|
+
metadata: Union[Unset, "Metadata"] = UNSET
|
30
|
+
spec: Union[Unset, "KnowledgebaseSpec"] = UNSET
|
31
|
+
status: Union[Unset, str] = UNSET
|
32
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
33
|
+
|
34
|
+
def to_dict(self) -> dict[str, Any]:
|
35
|
+
events: Union[Unset, list[dict[str, Any]]] = UNSET
|
36
|
+
if not isinstance(self.events, Unset):
|
37
|
+
events = []
|
38
|
+
for componentsschemas_core_events_item_data in self.events:
|
39
|
+
componentsschemas_core_events_item = componentsschemas_core_events_item_data.to_dict()
|
40
|
+
events.append(componentsschemas_core_events_item)
|
41
|
+
|
42
|
+
metadata: Union[Unset, dict[str, Any]] = UNSET
|
43
|
+
if self.metadata and not isinstance(self.metadata, Unset) and not isinstance(self.metadata, dict):
|
44
|
+
metadata = self.metadata.to_dict()
|
45
|
+
elif self.metadata and isinstance(self.metadata, dict):
|
46
|
+
metadata = self.metadata
|
47
|
+
|
48
|
+
spec: Union[Unset, dict[str, Any]] = UNSET
|
49
|
+
if self.spec and not isinstance(self.spec, Unset) and not isinstance(self.spec, dict):
|
50
|
+
spec = self.spec.to_dict()
|
51
|
+
elif self.spec and isinstance(self.spec, dict):
|
52
|
+
spec = self.spec
|
53
|
+
|
54
|
+
status = self.status
|
55
|
+
|
56
|
+
field_dict: dict[str, Any] = {}
|
57
|
+
field_dict.update(self.additional_properties)
|
58
|
+
field_dict.update({})
|
59
|
+
if events is not UNSET:
|
60
|
+
field_dict["events"] = events
|
61
|
+
if metadata is not UNSET:
|
62
|
+
field_dict["metadata"] = metadata
|
63
|
+
if spec is not UNSET:
|
64
|
+
field_dict["spec"] = spec
|
65
|
+
if status is not UNSET:
|
66
|
+
field_dict["status"] = status
|
67
|
+
|
68
|
+
return field_dict
|
69
|
+
|
70
|
+
@classmethod
|
71
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
72
|
+
from ..models.core_event import CoreEvent
|
73
|
+
from ..models.knowledgebase_spec import KnowledgebaseSpec
|
74
|
+
from ..models.metadata import Metadata
|
75
|
+
|
76
|
+
if not src_dict:
|
77
|
+
return None
|
78
|
+
d = src_dict.copy()
|
79
|
+
events = []
|
80
|
+
_events = d.pop("events", UNSET)
|
81
|
+
for componentsschemas_core_events_item_data in _events or []:
|
82
|
+
componentsschemas_core_events_item = CoreEvent.from_dict(componentsschemas_core_events_item_data)
|
83
|
+
|
84
|
+
events.append(componentsschemas_core_events_item)
|
85
|
+
|
86
|
+
_metadata = d.pop("metadata", UNSET)
|
87
|
+
metadata: Union[Unset, Metadata]
|
88
|
+
if isinstance(_metadata, Unset):
|
89
|
+
metadata = UNSET
|
90
|
+
else:
|
91
|
+
metadata = Metadata.from_dict(_metadata)
|
92
|
+
|
93
|
+
_spec = d.pop("spec", UNSET)
|
94
|
+
spec: Union[Unset, KnowledgebaseSpec]
|
95
|
+
if isinstance(_spec, Unset):
|
96
|
+
spec = UNSET
|
97
|
+
else:
|
98
|
+
spec = KnowledgebaseSpec.from_dict(_spec)
|
99
|
+
|
100
|
+
status = d.pop("status", UNSET)
|
101
|
+
|
102
|
+
knowledgebase = cls(
|
103
|
+
events=events,
|
104
|
+
metadata=metadata,
|
105
|
+
spec=spec,
|
106
|
+
status=status,
|
107
|
+
)
|
108
|
+
|
109
|
+
knowledgebase.additional_properties = d
|
110
|
+
return knowledgebase
|
111
|
+
|
112
|
+
@property
|
113
|
+
def additional_keys(self) -> list[str]:
|
114
|
+
return list(self.additional_properties.keys())
|
115
|
+
|
116
|
+
def __getitem__(self, key: str) -> Any:
|
117
|
+
return self.additional_properties[key]
|
118
|
+
|
119
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
120
|
+
self.additional_properties[key] = value
|
121
|
+
|
122
|
+
def __delitem__(self, key: str) -> None:
|
123
|
+
del self.additional_properties[key]
|
124
|
+
|
125
|
+
def __contains__(self, key: str) -> bool:
|
126
|
+
return key in self.additional_properties
|
@@ -0,0 +1,163 @@
|
|
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.knowledgebase_spec_options import KnowledgebaseSpecOptions
|
10
|
+
from ..models.revision_configuration import RevisionConfiguration
|
11
|
+
|
12
|
+
|
13
|
+
T = TypeVar("T", bound="KnowledgebaseSpec")
|
14
|
+
|
15
|
+
|
16
|
+
@_attrs_define
|
17
|
+
class KnowledgebaseSpec:
|
18
|
+
"""Knowledgebase specification
|
19
|
+
|
20
|
+
Attributes:
|
21
|
+
collection_name (Union[Unset, str]): Collection name
|
22
|
+
embedding_model (Union[Unset, str]): Embedding model
|
23
|
+
embedding_model_type (Union[Unset, str]): Embedding model type
|
24
|
+
enabled (Union[Unset, bool]): Enable or disable the agent
|
25
|
+
integration_connections (Union[Unset, list[str]]):
|
26
|
+
options (Union[Unset, KnowledgebaseSpecOptions]): Options specific to the knowledge base
|
27
|
+
policies (Union[Unset, list[str]]):
|
28
|
+
revision (Union[Unset, RevisionConfiguration]): Revision configuration
|
29
|
+
sandbox (Union[Unset, bool]): Sandbox mode
|
30
|
+
"""
|
31
|
+
|
32
|
+
collection_name: Union[Unset, str] = UNSET
|
33
|
+
embedding_model: Union[Unset, str] = UNSET
|
34
|
+
embedding_model_type: Union[Unset, str] = UNSET
|
35
|
+
enabled: Union[Unset, bool] = UNSET
|
36
|
+
integration_connections: Union[Unset, list[str]] = UNSET
|
37
|
+
options: Union[Unset, "KnowledgebaseSpecOptions"] = UNSET
|
38
|
+
policies: Union[Unset, list[str]] = UNSET
|
39
|
+
revision: Union[Unset, "RevisionConfiguration"] = UNSET
|
40
|
+
sandbox: Union[Unset, bool] = UNSET
|
41
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
42
|
+
|
43
|
+
def to_dict(self) -> dict[str, Any]:
|
44
|
+
collection_name = self.collection_name
|
45
|
+
|
46
|
+
embedding_model = self.embedding_model
|
47
|
+
|
48
|
+
embedding_model_type = self.embedding_model_type
|
49
|
+
|
50
|
+
enabled = self.enabled
|
51
|
+
|
52
|
+
integration_connections: Union[Unset, list[str]] = UNSET
|
53
|
+
if not isinstance(self.integration_connections, Unset):
|
54
|
+
integration_connections = self.integration_connections
|
55
|
+
|
56
|
+
options: Union[Unset, dict[str, Any]] = UNSET
|
57
|
+
if self.options and not isinstance(self.options, Unset) and not isinstance(self.options, dict):
|
58
|
+
options = self.options.to_dict()
|
59
|
+
elif self.options and isinstance(self.options, dict):
|
60
|
+
options = self.options
|
61
|
+
|
62
|
+
policies: Union[Unset, list[str]] = UNSET
|
63
|
+
if not isinstance(self.policies, Unset):
|
64
|
+
policies = self.policies
|
65
|
+
|
66
|
+
revision: Union[Unset, dict[str, Any]] = UNSET
|
67
|
+
if self.revision and not isinstance(self.revision, Unset) and not isinstance(self.revision, dict):
|
68
|
+
revision = self.revision.to_dict()
|
69
|
+
elif self.revision and isinstance(self.revision, dict):
|
70
|
+
revision = self.revision
|
71
|
+
|
72
|
+
sandbox = self.sandbox
|
73
|
+
|
74
|
+
field_dict: dict[str, Any] = {}
|
75
|
+
field_dict.update(self.additional_properties)
|
76
|
+
field_dict.update({})
|
77
|
+
if collection_name is not UNSET:
|
78
|
+
field_dict["collectionName"] = collection_name
|
79
|
+
if embedding_model is not UNSET:
|
80
|
+
field_dict["embeddingModel"] = embedding_model
|
81
|
+
if embedding_model_type is not UNSET:
|
82
|
+
field_dict["embeddingModelType"] = embedding_model_type
|
83
|
+
if enabled is not UNSET:
|
84
|
+
field_dict["enabled"] = enabled
|
85
|
+
if integration_connections is not UNSET:
|
86
|
+
field_dict["integrationConnections"] = integration_connections
|
87
|
+
if options is not UNSET:
|
88
|
+
field_dict["options"] = options
|
89
|
+
if policies is not UNSET:
|
90
|
+
field_dict["policies"] = policies
|
91
|
+
if revision is not UNSET:
|
92
|
+
field_dict["revision"] = revision
|
93
|
+
if sandbox is not UNSET:
|
94
|
+
field_dict["sandbox"] = sandbox
|
95
|
+
|
96
|
+
return field_dict
|
97
|
+
|
98
|
+
@classmethod
|
99
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
100
|
+
from ..models.knowledgebase_spec_options import KnowledgebaseSpecOptions
|
101
|
+
from ..models.revision_configuration import RevisionConfiguration
|
102
|
+
|
103
|
+
if not src_dict:
|
104
|
+
return None
|
105
|
+
d = src_dict.copy()
|
106
|
+
collection_name = d.pop("collectionName", UNSET)
|
107
|
+
|
108
|
+
embedding_model = d.pop("embeddingModel", UNSET)
|
109
|
+
|
110
|
+
embedding_model_type = d.pop("embeddingModelType", UNSET)
|
111
|
+
|
112
|
+
enabled = d.pop("enabled", UNSET)
|
113
|
+
|
114
|
+
integration_connections = cast(list[str], d.pop("integrationConnections", UNSET))
|
115
|
+
|
116
|
+
_options = d.pop("options", UNSET)
|
117
|
+
options: Union[Unset, KnowledgebaseSpecOptions]
|
118
|
+
if isinstance(_options, Unset):
|
119
|
+
options = UNSET
|
120
|
+
else:
|
121
|
+
options = KnowledgebaseSpecOptions.from_dict(_options)
|
122
|
+
|
123
|
+
policies = cast(list[str], d.pop("policies", UNSET))
|
124
|
+
|
125
|
+
_revision = d.pop("revision", UNSET)
|
126
|
+
revision: Union[Unset, RevisionConfiguration]
|
127
|
+
if isinstance(_revision, Unset):
|
128
|
+
revision = UNSET
|
129
|
+
else:
|
130
|
+
revision = RevisionConfiguration.from_dict(_revision)
|
131
|
+
|
132
|
+
sandbox = d.pop("sandbox", UNSET)
|
133
|
+
|
134
|
+
knowledgebase_spec = cls(
|
135
|
+
collection_name=collection_name,
|
136
|
+
embedding_model=embedding_model,
|
137
|
+
embedding_model_type=embedding_model_type,
|
138
|
+
enabled=enabled,
|
139
|
+
integration_connections=integration_connections,
|
140
|
+
options=options,
|
141
|
+
policies=policies,
|
142
|
+
revision=revision,
|
143
|
+
sandbox=sandbox,
|
144
|
+
)
|
145
|
+
|
146
|
+
knowledgebase_spec.additional_properties = d
|
147
|
+
return knowledgebase_spec
|
148
|
+
|
149
|
+
@property
|
150
|
+
def additional_keys(self) -> list[str]:
|
151
|
+
return list(self.additional_properties.keys())
|
152
|
+
|
153
|
+
def __getitem__(self, key: str) -> Any:
|
154
|
+
return self.additional_properties[key]
|
155
|
+
|
156
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
157
|
+
self.additional_properties[key] = value
|
158
|
+
|
159
|
+
def __delitem__(self, key: str) -> None:
|
160
|
+
del self.additional_properties[key]
|
161
|
+
|
162
|
+
def __contains__(self, key: str) -> bool:
|
163
|
+
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="KnowledgebaseSpecOptions")
|
7
|
+
|
8
|
+
|
9
|
+
@_attrs_define
|
10
|
+
class KnowledgebaseSpecOptions:
|
11
|
+
"""Options specific to the knowledge base"""
|
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
|
+
knowledgebase_spec_options = cls()
|
27
|
+
|
28
|
+
knowledgebase_spec_options.additional_properties = d
|
29
|
+
return knowledgebase_spec_options
|
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,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="LastNRequestsMetric")
|
9
|
+
|
10
|
+
|
11
|
+
@_attrs_define
|
12
|
+
class LastNRequestsMetric:
|
13
|
+
"""Last N requests
|
14
|
+
|
15
|
+
Attributes:
|
16
|
+
date (Union[Unset, str]): Timestamp
|
17
|
+
workload_type (Union[Unset, str]): Workload type
|
18
|
+
workspace (Union[Unset, str]): Workspace
|
19
|
+
"""
|
20
|
+
|
21
|
+
date: Union[Unset, str] = UNSET
|
22
|
+
workload_type: Union[Unset, str] = UNSET
|
23
|
+
workspace: Union[Unset, str] = UNSET
|
24
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
25
|
+
|
26
|
+
def to_dict(self) -> dict[str, Any]:
|
27
|
+
date = self.date
|
28
|
+
|
29
|
+
workload_type = self.workload_type
|
30
|
+
|
31
|
+
workspace = self.workspace
|
32
|
+
|
33
|
+
field_dict: dict[str, Any] = {}
|
34
|
+
field_dict.update(self.additional_properties)
|
35
|
+
field_dict.update({})
|
36
|
+
if date is not UNSET:
|
37
|
+
field_dict["date"] = date
|
38
|
+
if workload_type is not UNSET:
|
39
|
+
field_dict["workloadType"] = workload_type
|
40
|
+
if workspace is not UNSET:
|
41
|
+
field_dict["workspace"] = workspace
|
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
|
+
date = d.pop("date", UNSET)
|
51
|
+
|
52
|
+
workload_type = d.pop("workloadType", UNSET)
|
53
|
+
|
54
|
+
workspace = d.pop("workspace", UNSET)
|
55
|
+
|
56
|
+
last_n_requests_metric = cls(
|
57
|
+
date=date,
|
58
|
+
workload_type=workload_type,
|
59
|
+
workspace=workspace,
|
60
|
+
)
|
61
|
+
|
62
|
+
last_n_requests_metric.additional_properties = d
|
63
|
+
return last_n_requests_metric
|
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
|
@@ -0,0 +1,144 @@
|
|
1
|
+
from typing import TYPE_CHECKING, 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
|
+
if TYPE_CHECKING:
|
9
|
+
from ..models.histogram_bucket import HistogramBucket
|
10
|
+
from ..models.histogram_stats import HistogramStats
|
11
|
+
|
12
|
+
|
13
|
+
T = TypeVar("T", bound="LatencyMetric")
|
14
|
+
|
15
|
+
|
16
|
+
@_attrs_define
|
17
|
+
class LatencyMetric:
|
18
|
+
"""Latency metrics
|
19
|
+
|
20
|
+
Attributes:
|
21
|
+
global_histogram (Union[Unset, HistogramBucket]): Histogram bucket
|
22
|
+
global_stats (Union[Unset, HistogramStats]): Histogram stats
|
23
|
+
histogram_per_code (Union[Unset, HistogramBucket]): Histogram bucket
|
24
|
+
stats_per_code (Union[Unset, HistogramStats]): Histogram stats
|
25
|
+
"""
|
26
|
+
|
27
|
+
global_histogram: Union[Unset, "HistogramBucket"] = UNSET
|
28
|
+
global_stats: Union[Unset, "HistogramStats"] = UNSET
|
29
|
+
histogram_per_code: Union[Unset, "HistogramBucket"] = UNSET
|
30
|
+
stats_per_code: Union[Unset, "HistogramStats"] = UNSET
|
31
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
32
|
+
|
33
|
+
def to_dict(self) -> dict[str, Any]:
|
34
|
+
global_histogram: Union[Unset, dict[str, Any]] = UNSET
|
35
|
+
if (
|
36
|
+
self.global_histogram
|
37
|
+
and not isinstance(self.global_histogram, Unset)
|
38
|
+
and not isinstance(self.global_histogram, dict)
|
39
|
+
):
|
40
|
+
global_histogram = self.global_histogram.to_dict()
|
41
|
+
elif self.global_histogram and isinstance(self.global_histogram, dict):
|
42
|
+
global_histogram = self.global_histogram
|
43
|
+
|
44
|
+
global_stats: Union[Unset, dict[str, Any]] = UNSET
|
45
|
+
if self.global_stats and not isinstance(self.global_stats, Unset) and not isinstance(self.global_stats, dict):
|
46
|
+
global_stats = self.global_stats.to_dict()
|
47
|
+
elif self.global_stats and isinstance(self.global_stats, dict):
|
48
|
+
global_stats = self.global_stats
|
49
|
+
|
50
|
+
histogram_per_code: Union[Unset, dict[str, Any]] = UNSET
|
51
|
+
if (
|
52
|
+
self.histogram_per_code
|
53
|
+
and not isinstance(self.histogram_per_code, Unset)
|
54
|
+
and not isinstance(self.histogram_per_code, dict)
|
55
|
+
):
|
56
|
+
histogram_per_code = self.histogram_per_code.to_dict()
|
57
|
+
elif self.histogram_per_code and isinstance(self.histogram_per_code, dict):
|
58
|
+
histogram_per_code = self.histogram_per_code
|
59
|
+
|
60
|
+
stats_per_code: Union[Unset, dict[str, Any]] = UNSET
|
61
|
+
if (
|
62
|
+
self.stats_per_code
|
63
|
+
and not isinstance(self.stats_per_code, Unset)
|
64
|
+
and not isinstance(self.stats_per_code, dict)
|
65
|
+
):
|
66
|
+
stats_per_code = self.stats_per_code.to_dict()
|
67
|
+
elif self.stats_per_code and isinstance(self.stats_per_code, dict):
|
68
|
+
stats_per_code = self.stats_per_code
|
69
|
+
|
70
|
+
field_dict: dict[str, Any] = {}
|
71
|
+
field_dict.update(self.additional_properties)
|
72
|
+
field_dict.update({})
|
73
|
+
if global_histogram is not UNSET:
|
74
|
+
field_dict["globalHistogram"] = global_histogram
|
75
|
+
if global_stats is not UNSET:
|
76
|
+
field_dict["globalStats"] = global_stats
|
77
|
+
if histogram_per_code is not UNSET:
|
78
|
+
field_dict["histogramPerCode"] = histogram_per_code
|
79
|
+
if stats_per_code is not UNSET:
|
80
|
+
field_dict["statsPerCode"] = stats_per_code
|
81
|
+
|
82
|
+
return field_dict
|
83
|
+
|
84
|
+
@classmethod
|
85
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
86
|
+
from ..models.histogram_bucket import HistogramBucket
|
87
|
+
from ..models.histogram_stats import HistogramStats
|
88
|
+
|
89
|
+
if not src_dict:
|
90
|
+
return None
|
91
|
+
d = src_dict.copy()
|
92
|
+
_global_histogram = d.pop("globalHistogram", UNSET)
|
93
|
+
global_histogram: Union[Unset, HistogramBucket]
|
94
|
+
if isinstance(_global_histogram, Unset):
|
95
|
+
global_histogram = UNSET
|
96
|
+
else:
|
97
|
+
global_histogram = HistogramBucket.from_dict(_global_histogram)
|
98
|
+
|
99
|
+
_global_stats = d.pop("globalStats", UNSET)
|
100
|
+
global_stats: Union[Unset, HistogramStats]
|
101
|
+
if isinstance(_global_stats, Unset):
|
102
|
+
global_stats = UNSET
|
103
|
+
else:
|
104
|
+
global_stats = HistogramStats.from_dict(_global_stats)
|
105
|
+
|
106
|
+
_histogram_per_code = d.pop("histogramPerCode", UNSET)
|
107
|
+
histogram_per_code: Union[Unset, HistogramBucket]
|
108
|
+
if isinstance(_histogram_per_code, Unset):
|
109
|
+
histogram_per_code = UNSET
|
110
|
+
else:
|
111
|
+
histogram_per_code = HistogramBucket.from_dict(_histogram_per_code)
|
112
|
+
|
113
|
+
_stats_per_code = d.pop("statsPerCode", UNSET)
|
114
|
+
stats_per_code: Union[Unset, HistogramStats]
|
115
|
+
if isinstance(_stats_per_code, Unset):
|
116
|
+
stats_per_code = UNSET
|
117
|
+
else:
|
118
|
+
stats_per_code = HistogramStats.from_dict(_stats_per_code)
|
119
|
+
|
120
|
+
latency_metric = cls(
|
121
|
+
global_histogram=global_histogram,
|
122
|
+
global_stats=global_stats,
|
123
|
+
histogram_per_code=histogram_per_code,
|
124
|
+
stats_per_code=stats_per_code,
|
125
|
+
)
|
126
|
+
|
127
|
+
latency_metric.additional_properties = d
|
128
|
+
return latency_metric
|
129
|
+
|
130
|
+
@property
|
131
|
+
def additional_keys(self) -> list[str]:
|
132
|
+
return list(self.additional_properties.keys())
|
133
|
+
|
134
|
+
def __getitem__(self, key: str) -> Any:
|
135
|
+
return self.additional_properties[key]
|
136
|
+
|
137
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
138
|
+
self.additional_properties[key] = value
|
139
|
+
|
140
|
+
def __delitem__(self, key: str) -> None:
|
141
|
+
del self.additional_properties[key]
|
142
|
+
|
143
|
+
def __contains__(self, key: str) -> bool:
|
144
|
+
return key in self.additional_properties
|
@@ -0,0 +1,113 @@
|
|
1
|
+
from typing import TYPE_CHECKING, 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
|
+
if TYPE_CHECKING:
|
9
|
+
from ..models.flavor import Flavor
|
10
|
+
|
11
|
+
|
12
|
+
T = TypeVar("T", bound="LocationResponse")
|
13
|
+
|
14
|
+
|
15
|
+
@_attrs_define
|
16
|
+
class LocationResponse:
|
17
|
+
"""Location availability for policies
|
18
|
+
|
19
|
+
Attributes:
|
20
|
+
continent (Union[Unset, str]): Continent of the location
|
21
|
+
country (Union[Unset, str]): Country of the location
|
22
|
+
flavors (Union[Unset, list['Flavor']]): Hardware flavors available in the location
|
23
|
+
location (Union[Unset, str]): Name of the location
|
24
|
+
status (Union[Unset, str]): Status of the location
|
25
|
+
"""
|
26
|
+
|
27
|
+
continent: Union[Unset, str] = UNSET
|
28
|
+
country: Union[Unset, str] = UNSET
|
29
|
+
flavors: Union[Unset, list["Flavor"]] = UNSET
|
30
|
+
location: Union[Unset, str] = UNSET
|
31
|
+
status: Union[Unset, str] = UNSET
|
32
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
33
|
+
|
34
|
+
def to_dict(self) -> dict[str, Any]:
|
35
|
+
continent = self.continent
|
36
|
+
|
37
|
+
country = self.country
|
38
|
+
|
39
|
+
flavors: Union[Unset, list[dict[str, Any]]] = UNSET
|
40
|
+
if not isinstance(self.flavors, Unset):
|
41
|
+
flavors = []
|
42
|
+
for flavors_item_data in self.flavors:
|
43
|
+
flavors_item = flavors_item_data.to_dict()
|
44
|
+
flavors.append(flavors_item)
|
45
|
+
|
46
|
+
location = self.location
|
47
|
+
|
48
|
+
status = self.status
|
49
|
+
|
50
|
+
field_dict: dict[str, Any] = {}
|
51
|
+
field_dict.update(self.additional_properties)
|
52
|
+
field_dict.update({})
|
53
|
+
if continent is not UNSET:
|
54
|
+
field_dict["continent"] = continent
|
55
|
+
if country is not UNSET:
|
56
|
+
field_dict["country"] = country
|
57
|
+
if flavors is not UNSET:
|
58
|
+
field_dict["flavors"] = flavors
|
59
|
+
if location is not UNSET:
|
60
|
+
field_dict["location"] = location
|
61
|
+
if status is not UNSET:
|
62
|
+
field_dict["status"] = status
|
63
|
+
|
64
|
+
return field_dict
|
65
|
+
|
66
|
+
@classmethod
|
67
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
68
|
+
from ..models.flavor import Flavor
|
69
|
+
|
70
|
+
if not src_dict:
|
71
|
+
return None
|
72
|
+
d = src_dict.copy()
|
73
|
+
continent = d.pop("continent", UNSET)
|
74
|
+
|
75
|
+
country = d.pop("country", UNSET)
|
76
|
+
|
77
|
+
flavors = []
|
78
|
+
_flavors = d.pop("flavors", UNSET)
|
79
|
+
for flavors_item_data in _flavors or []:
|
80
|
+
flavors_item = Flavor.from_dict(flavors_item_data)
|
81
|
+
|
82
|
+
flavors.append(flavors_item)
|
83
|
+
|
84
|
+
location = d.pop("location", UNSET)
|
85
|
+
|
86
|
+
status = d.pop("status", UNSET)
|
87
|
+
|
88
|
+
location_response = cls(
|
89
|
+
continent=continent,
|
90
|
+
country=country,
|
91
|
+
flavors=flavors,
|
92
|
+
location=location,
|
93
|
+
status=status,
|
94
|
+
)
|
95
|
+
|
96
|
+
location_response.additional_properties = d
|
97
|
+
return location_response
|
98
|
+
|
99
|
+
@property
|
100
|
+
def additional_keys(self) -> list[str]:
|
101
|
+
return list(self.additional_properties.keys())
|
102
|
+
|
103
|
+
def __getitem__(self, key: str) -> Any:
|
104
|
+
return self.additional_properties[key]
|
105
|
+
|
106
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
107
|
+
self.additional_properties[key] = value
|
108
|
+
|
109
|
+
def __delitem__(self, key: str) -> None:
|
110
|
+
del self.additional_properties[key]
|
111
|
+
|
112
|
+
def __contains__(self, key: str) -> bool:
|
113
|
+
return key in self.additional_properties
|