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,147 @@
|
|
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.pending_invitation_render_invited_by import PendingInvitationRenderInvitedBy
|
10
|
+
from ..models.pending_invitation_render_workspace import PendingInvitationRenderWorkspace
|
11
|
+
from ..models.pending_invitation_workspace_details import PendingInvitationWorkspaceDetails
|
12
|
+
|
13
|
+
|
14
|
+
T = TypeVar("T", bound="PendingInvitationRender")
|
15
|
+
|
16
|
+
|
17
|
+
@_attrs_define
|
18
|
+
class PendingInvitationRender:
|
19
|
+
"""Pending invitation in workspace
|
20
|
+
|
21
|
+
Attributes:
|
22
|
+
email (Union[Unset, str]): User email
|
23
|
+
invited_at (Union[Unset, str]): Invitation date
|
24
|
+
invited_by (Union[Unset, PendingInvitationRenderInvitedBy]): Invited by
|
25
|
+
role (Union[Unset, str]): ACL role
|
26
|
+
workspace (Union[Unset, PendingInvitationRenderWorkspace]): Workspace
|
27
|
+
workspace_details (Union[Unset, PendingInvitationWorkspaceDetails]): Workspace details
|
28
|
+
"""
|
29
|
+
|
30
|
+
email: Union[Unset, str] = UNSET
|
31
|
+
invited_at: Union[Unset, str] = UNSET
|
32
|
+
invited_by: Union[Unset, "PendingInvitationRenderInvitedBy"] = UNSET
|
33
|
+
role: Union[Unset, str] = UNSET
|
34
|
+
workspace: Union[Unset, "PendingInvitationRenderWorkspace"] = UNSET
|
35
|
+
workspace_details: Union[Unset, "PendingInvitationWorkspaceDetails"] = UNSET
|
36
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
37
|
+
|
38
|
+
def to_dict(self) -> dict[str, Any]:
|
39
|
+
email = self.email
|
40
|
+
|
41
|
+
invited_at = self.invited_at
|
42
|
+
|
43
|
+
invited_by: Union[Unset, dict[str, Any]] = UNSET
|
44
|
+
if self.invited_by and not isinstance(self.invited_by, Unset) and not isinstance(self.invited_by, dict):
|
45
|
+
invited_by = self.invited_by.to_dict()
|
46
|
+
elif self.invited_by and isinstance(self.invited_by, dict):
|
47
|
+
invited_by = self.invited_by
|
48
|
+
|
49
|
+
role = self.role
|
50
|
+
|
51
|
+
workspace: Union[Unset, dict[str, Any]] = UNSET
|
52
|
+
if self.workspace and not isinstance(self.workspace, Unset) and not isinstance(self.workspace, dict):
|
53
|
+
workspace = self.workspace.to_dict()
|
54
|
+
elif self.workspace and isinstance(self.workspace, dict):
|
55
|
+
workspace = self.workspace
|
56
|
+
|
57
|
+
workspace_details: Union[Unset, dict[str, Any]] = UNSET
|
58
|
+
if (
|
59
|
+
self.workspace_details
|
60
|
+
and not isinstance(self.workspace_details, Unset)
|
61
|
+
and not isinstance(self.workspace_details, dict)
|
62
|
+
):
|
63
|
+
workspace_details = self.workspace_details.to_dict()
|
64
|
+
elif self.workspace_details and isinstance(self.workspace_details, dict):
|
65
|
+
workspace_details = self.workspace_details
|
66
|
+
|
67
|
+
field_dict: dict[str, Any] = {}
|
68
|
+
field_dict.update(self.additional_properties)
|
69
|
+
field_dict.update({})
|
70
|
+
if email is not UNSET:
|
71
|
+
field_dict["email"] = email
|
72
|
+
if invited_at is not UNSET:
|
73
|
+
field_dict["invitedAt"] = invited_at
|
74
|
+
if invited_by is not UNSET:
|
75
|
+
field_dict["invitedBy"] = invited_by
|
76
|
+
if role is not UNSET:
|
77
|
+
field_dict["role"] = role
|
78
|
+
if workspace is not UNSET:
|
79
|
+
field_dict["workspace"] = workspace
|
80
|
+
if workspace_details is not UNSET:
|
81
|
+
field_dict["workspaceDetails"] = workspace_details
|
82
|
+
|
83
|
+
return field_dict
|
84
|
+
|
85
|
+
@classmethod
|
86
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
87
|
+
from ..models.pending_invitation_render_invited_by import PendingInvitationRenderInvitedBy
|
88
|
+
from ..models.pending_invitation_render_workspace import PendingInvitationRenderWorkspace
|
89
|
+
from ..models.pending_invitation_workspace_details import PendingInvitationWorkspaceDetails
|
90
|
+
|
91
|
+
if not src_dict:
|
92
|
+
return None
|
93
|
+
d = src_dict.copy()
|
94
|
+
email = d.pop("email", UNSET)
|
95
|
+
|
96
|
+
invited_at = d.pop("invitedAt", UNSET)
|
97
|
+
|
98
|
+
_invited_by = d.pop("invitedBy", UNSET)
|
99
|
+
invited_by: Union[Unset, PendingInvitationRenderInvitedBy]
|
100
|
+
if isinstance(_invited_by, Unset):
|
101
|
+
invited_by = UNSET
|
102
|
+
else:
|
103
|
+
invited_by = PendingInvitationRenderInvitedBy.from_dict(_invited_by)
|
104
|
+
|
105
|
+
role = d.pop("role", UNSET)
|
106
|
+
|
107
|
+
_workspace = d.pop("workspace", UNSET)
|
108
|
+
workspace: Union[Unset, PendingInvitationRenderWorkspace]
|
109
|
+
if isinstance(_workspace, Unset):
|
110
|
+
workspace = UNSET
|
111
|
+
else:
|
112
|
+
workspace = PendingInvitationRenderWorkspace.from_dict(_workspace)
|
113
|
+
|
114
|
+
_workspace_details = d.pop("workspaceDetails", UNSET)
|
115
|
+
workspace_details: Union[Unset, PendingInvitationWorkspaceDetails]
|
116
|
+
if isinstance(_workspace_details, Unset):
|
117
|
+
workspace_details = UNSET
|
118
|
+
else:
|
119
|
+
workspace_details = PendingInvitationWorkspaceDetails.from_dict(_workspace_details)
|
120
|
+
|
121
|
+
pending_invitation_render = cls(
|
122
|
+
email=email,
|
123
|
+
invited_at=invited_at,
|
124
|
+
invited_by=invited_by,
|
125
|
+
role=role,
|
126
|
+
workspace=workspace,
|
127
|
+
workspace_details=workspace_details,
|
128
|
+
)
|
129
|
+
|
130
|
+
pending_invitation_render.additional_properties = d
|
131
|
+
return pending_invitation_render
|
132
|
+
|
133
|
+
@property
|
134
|
+
def additional_keys(self) -> list[str]:
|
135
|
+
return list(self.additional_properties.keys())
|
136
|
+
|
137
|
+
def __getitem__(self, key: str) -> Any:
|
138
|
+
return self.additional_properties[key]
|
139
|
+
|
140
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
141
|
+
self.additional_properties[key] = value
|
142
|
+
|
143
|
+
def __delitem__(self, key: str) -> None:
|
144
|
+
del self.additional_properties[key]
|
145
|
+
|
146
|
+
def __contains__(self, key: str) -> bool:
|
147
|
+
return key in self.additional_properties
|
@@ -0,0 +1,88 @@
|
|
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="PendingInvitationRenderInvitedBy")
|
9
|
+
|
10
|
+
|
11
|
+
@_attrs_define
|
12
|
+
class PendingInvitationRenderInvitedBy:
|
13
|
+
"""Invited by
|
14
|
+
|
15
|
+
Attributes:
|
16
|
+
email (Union[Unset, str]): User email
|
17
|
+
family_name (Union[Unset, str]): User family name
|
18
|
+
given_name (Union[Unset, str]): User given name
|
19
|
+
sub (Union[Unset, str]): User sub
|
20
|
+
"""
|
21
|
+
|
22
|
+
email: Union[Unset, str] = UNSET
|
23
|
+
family_name: Union[Unset, str] = UNSET
|
24
|
+
given_name: Union[Unset, str] = UNSET
|
25
|
+
sub: Union[Unset, str] = UNSET
|
26
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
27
|
+
|
28
|
+
def to_dict(self) -> dict[str, Any]:
|
29
|
+
email = self.email
|
30
|
+
|
31
|
+
family_name = self.family_name
|
32
|
+
|
33
|
+
given_name = self.given_name
|
34
|
+
|
35
|
+
sub = self.sub
|
36
|
+
|
37
|
+
field_dict: dict[str, Any] = {}
|
38
|
+
field_dict.update(self.additional_properties)
|
39
|
+
field_dict.update({})
|
40
|
+
if email is not UNSET:
|
41
|
+
field_dict["email"] = email
|
42
|
+
if family_name is not UNSET:
|
43
|
+
field_dict["family_name"] = family_name
|
44
|
+
if given_name is not UNSET:
|
45
|
+
field_dict["given_name"] = given_name
|
46
|
+
if sub is not UNSET:
|
47
|
+
field_dict["sub"] = sub
|
48
|
+
|
49
|
+
return field_dict
|
50
|
+
|
51
|
+
@classmethod
|
52
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
53
|
+
if not src_dict:
|
54
|
+
return None
|
55
|
+
d = src_dict.copy()
|
56
|
+
email = d.pop("email", UNSET)
|
57
|
+
|
58
|
+
family_name = d.pop("family_name", UNSET)
|
59
|
+
|
60
|
+
given_name = d.pop("given_name", UNSET)
|
61
|
+
|
62
|
+
sub = d.pop("sub", UNSET)
|
63
|
+
|
64
|
+
pending_invitation_render_invited_by = cls(
|
65
|
+
email=email,
|
66
|
+
family_name=family_name,
|
67
|
+
given_name=given_name,
|
68
|
+
sub=sub,
|
69
|
+
)
|
70
|
+
|
71
|
+
pending_invitation_render_invited_by.additional_properties = d
|
72
|
+
return pending_invitation_render_invited_by
|
73
|
+
|
74
|
+
@property
|
75
|
+
def additional_keys(self) -> list[str]:
|
76
|
+
return list(self.additional_properties.keys())
|
77
|
+
|
78
|
+
def __getitem__(self, key: str) -> Any:
|
79
|
+
return self.additional_properties[key]
|
80
|
+
|
81
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
82
|
+
self.additional_properties[key] = value
|
83
|
+
|
84
|
+
def __delitem__(self, key: str) -> None:
|
85
|
+
del self.additional_properties[key]
|
86
|
+
|
87
|
+
def __contains__(self, key: str) -> bool:
|
88
|
+
return key in self.additional_properties
|
@@ -0,0 +1,70 @@
|
|
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="PendingInvitationRenderWorkspace")
|
9
|
+
|
10
|
+
|
11
|
+
@_attrs_define
|
12
|
+
class PendingInvitationRenderWorkspace:
|
13
|
+
"""Workspace
|
14
|
+
|
15
|
+
Attributes:
|
16
|
+
display_name (Union[Unset, str]): Workspace display name
|
17
|
+
name (Union[Unset, str]): Workspace name
|
18
|
+
"""
|
19
|
+
|
20
|
+
display_name: Union[Unset, str] = UNSET
|
21
|
+
name: Union[Unset, str] = UNSET
|
22
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
23
|
+
|
24
|
+
def to_dict(self) -> dict[str, Any]:
|
25
|
+
display_name = self.display_name
|
26
|
+
|
27
|
+
name = self.name
|
28
|
+
|
29
|
+
field_dict: dict[str, Any] = {}
|
30
|
+
field_dict.update(self.additional_properties)
|
31
|
+
field_dict.update({})
|
32
|
+
if display_name is not UNSET:
|
33
|
+
field_dict["displayName"] = display_name
|
34
|
+
if name is not UNSET:
|
35
|
+
field_dict["name"] = name
|
36
|
+
|
37
|
+
return field_dict
|
38
|
+
|
39
|
+
@classmethod
|
40
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
41
|
+
if not src_dict:
|
42
|
+
return None
|
43
|
+
d = src_dict.copy()
|
44
|
+
display_name = d.pop("displayName", UNSET)
|
45
|
+
|
46
|
+
name = d.pop("name", UNSET)
|
47
|
+
|
48
|
+
pending_invitation_render_workspace = cls(
|
49
|
+
display_name=display_name,
|
50
|
+
name=name,
|
51
|
+
)
|
52
|
+
|
53
|
+
pending_invitation_render_workspace.additional_properties = d
|
54
|
+
return pending_invitation_render_workspace
|
55
|
+
|
56
|
+
@property
|
57
|
+
def additional_keys(self) -> list[str]:
|
58
|
+
return list(self.additional_properties.keys())
|
59
|
+
|
60
|
+
def __getitem__(self, key: str) -> Any:
|
61
|
+
return self.additional_properties[key]
|
62
|
+
|
63
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
64
|
+
self.additional_properties[key] = value
|
65
|
+
|
66
|
+
def __delitem__(self, key: str) -> None:
|
67
|
+
del self.additional_properties[key]
|
68
|
+
|
69
|
+
def __contains__(self, key: str) -> bool:
|
70
|
+
return key in self.additional_properties
|
@@ -0,0 +1,72 @@
|
|
1
|
+
from typing import 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
|
+
T = TypeVar("T", bound="PendingInvitationWorkspaceDetails")
|
9
|
+
|
10
|
+
|
11
|
+
@_attrs_define
|
12
|
+
class PendingInvitationWorkspaceDetails:
|
13
|
+
"""Workspace details
|
14
|
+
|
15
|
+
Attributes:
|
16
|
+
emails (Union[Unset, list[Any]]): List of user emails in the workspace
|
17
|
+
user_number (Union[Unset, float]): Number of users in the workspace
|
18
|
+
"""
|
19
|
+
|
20
|
+
emails: Union[Unset, list[Any]] = UNSET
|
21
|
+
user_number: Union[Unset, float] = UNSET
|
22
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
23
|
+
|
24
|
+
def to_dict(self) -> dict[str, Any]:
|
25
|
+
emails: Union[Unset, list[Any]] = UNSET
|
26
|
+
if not isinstance(self.emails, Unset):
|
27
|
+
emails = self.emails
|
28
|
+
|
29
|
+
user_number = self.user_number
|
30
|
+
|
31
|
+
field_dict: dict[str, Any] = {}
|
32
|
+
field_dict.update(self.additional_properties)
|
33
|
+
field_dict.update({})
|
34
|
+
if emails is not UNSET:
|
35
|
+
field_dict["emails"] = emails
|
36
|
+
if user_number is not UNSET:
|
37
|
+
field_dict["user_number"] = user_number
|
38
|
+
|
39
|
+
return field_dict
|
40
|
+
|
41
|
+
@classmethod
|
42
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
43
|
+
if not src_dict:
|
44
|
+
return None
|
45
|
+
d = src_dict.copy()
|
46
|
+
emails = cast(list[Any], d.pop("emails", UNSET))
|
47
|
+
|
48
|
+
user_number = d.pop("user_number", UNSET)
|
49
|
+
|
50
|
+
pending_invitation_workspace_details = cls(
|
51
|
+
emails=emails,
|
52
|
+
user_number=user_number,
|
53
|
+
)
|
54
|
+
|
55
|
+
pending_invitation_workspace_details.additional_properties = d
|
56
|
+
return pending_invitation_workspace_details
|
57
|
+
|
58
|
+
@property
|
59
|
+
def additional_keys(self) -> list[str]:
|
60
|
+
return list(self.additional_properties.keys())
|
61
|
+
|
62
|
+
def __getitem__(self, key: str) -> Any:
|
63
|
+
return self.additional_properties[key]
|
64
|
+
|
65
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
66
|
+
self.additional_properties[key] = value
|
67
|
+
|
68
|
+
def __delitem__(self, key: str) -> None:
|
69
|
+
del self.additional_properties[key]
|
70
|
+
|
71
|
+
def __contains__(self, key: str) -> bool:
|
72
|
+
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="PodTemplateSpec")
|
7
|
+
|
8
|
+
|
9
|
+
@_attrs_define
|
10
|
+
class PodTemplateSpec:
|
11
|
+
"""Pod template specification"""
|
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
|
+
pod_template_spec = cls()
|
27
|
+
|
28
|
+
pod_template_spec.additional_properties = d
|
29
|
+
return pod_template_spec
|
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
|
blaxel/models/policy.py
ADDED
@@ -0,0 +1,96 @@
|
|
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.metadata import Metadata
|
10
|
+
from ..models.policy_spec import PolicySpec
|
11
|
+
|
12
|
+
|
13
|
+
T = TypeVar("T", bound="Policy")
|
14
|
+
|
15
|
+
|
16
|
+
@_attrs_define
|
17
|
+
class Policy:
|
18
|
+
"""Rule that controls how a deployment is made and served (e.g. location restrictions)
|
19
|
+
|
20
|
+
Attributes:
|
21
|
+
metadata (Union[Unset, Metadata]): Metadata
|
22
|
+
spec (Union[Unset, PolicySpec]): Policy specification
|
23
|
+
"""
|
24
|
+
|
25
|
+
metadata: Union[Unset, "Metadata"] = UNSET
|
26
|
+
spec: Union[Unset, "PolicySpec"] = UNSET
|
27
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
28
|
+
|
29
|
+
def to_dict(self) -> dict[str, Any]:
|
30
|
+
metadata: Union[Unset, dict[str, Any]] = UNSET
|
31
|
+
if self.metadata and not isinstance(self.metadata, Unset) and not isinstance(self.metadata, dict):
|
32
|
+
metadata = self.metadata.to_dict()
|
33
|
+
elif self.metadata and isinstance(self.metadata, dict):
|
34
|
+
metadata = self.metadata
|
35
|
+
|
36
|
+
spec: Union[Unset, dict[str, Any]] = UNSET
|
37
|
+
if self.spec and not isinstance(self.spec, Unset) and not isinstance(self.spec, dict):
|
38
|
+
spec = self.spec.to_dict()
|
39
|
+
elif self.spec and isinstance(self.spec, dict):
|
40
|
+
spec = self.spec
|
41
|
+
|
42
|
+
field_dict: dict[str, Any] = {}
|
43
|
+
field_dict.update(self.additional_properties)
|
44
|
+
field_dict.update({})
|
45
|
+
if metadata is not UNSET:
|
46
|
+
field_dict["metadata"] = metadata
|
47
|
+
if spec is not UNSET:
|
48
|
+
field_dict["spec"] = spec
|
49
|
+
|
50
|
+
return field_dict
|
51
|
+
|
52
|
+
@classmethod
|
53
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
54
|
+
from ..models.metadata import Metadata
|
55
|
+
from ..models.policy_spec import PolicySpec
|
56
|
+
|
57
|
+
if not src_dict:
|
58
|
+
return None
|
59
|
+
d = src_dict.copy()
|
60
|
+
_metadata = d.pop("metadata", UNSET)
|
61
|
+
metadata: Union[Unset, Metadata]
|
62
|
+
if isinstance(_metadata, Unset):
|
63
|
+
metadata = UNSET
|
64
|
+
else:
|
65
|
+
metadata = Metadata.from_dict(_metadata)
|
66
|
+
|
67
|
+
_spec = d.pop("spec", UNSET)
|
68
|
+
spec: Union[Unset, PolicySpec]
|
69
|
+
if isinstance(_spec, Unset):
|
70
|
+
spec = UNSET
|
71
|
+
else:
|
72
|
+
spec = PolicySpec.from_dict(_spec)
|
73
|
+
|
74
|
+
policy = cls(
|
75
|
+
metadata=metadata,
|
76
|
+
spec=spec,
|
77
|
+
)
|
78
|
+
|
79
|
+
policy.additional_properties = d
|
80
|
+
return policy
|
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,70 @@
|
|
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="PolicyLocation")
|
9
|
+
|
10
|
+
|
11
|
+
@_attrs_define
|
12
|
+
class PolicyLocation:
|
13
|
+
"""Policy location
|
14
|
+
|
15
|
+
Attributes:
|
16
|
+
name (Union[Unset, str]): Policy location name
|
17
|
+
type_ (Union[Unset, str]): Policy location type
|
18
|
+
"""
|
19
|
+
|
20
|
+
name: Union[Unset, str] = UNSET
|
21
|
+
type_: Union[Unset, str] = UNSET
|
22
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
23
|
+
|
24
|
+
def to_dict(self) -> dict[str, Any]:
|
25
|
+
name = self.name
|
26
|
+
|
27
|
+
type_ = self.type_
|
28
|
+
|
29
|
+
field_dict: dict[str, Any] = {}
|
30
|
+
field_dict.update(self.additional_properties)
|
31
|
+
field_dict.update({})
|
32
|
+
if name is not UNSET:
|
33
|
+
field_dict["name"] = name
|
34
|
+
if type_ is not UNSET:
|
35
|
+
field_dict["type"] = type_
|
36
|
+
|
37
|
+
return field_dict
|
38
|
+
|
39
|
+
@classmethod
|
40
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
41
|
+
if not src_dict:
|
42
|
+
return None
|
43
|
+
d = src_dict.copy()
|
44
|
+
name = d.pop("name", UNSET)
|
45
|
+
|
46
|
+
type_ = d.pop("type", UNSET)
|
47
|
+
|
48
|
+
policy_location = cls(
|
49
|
+
name=name,
|
50
|
+
type_=type_,
|
51
|
+
)
|
52
|
+
|
53
|
+
policy_location.additional_properties = d
|
54
|
+
return policy_location
|
55
|
+
|
56
|
+
@property
|
57
|
+
def additional_keys(self) -> list[str]:
|
58
|
+
return list(self.additional_properties.keys())
|
59
|
+
|
60
|
+
def __getitem__(self, key: str) -> Any:
|
61
|
+
return self.additional_properties[key]
|
62
|
+
|
63
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
64
|
+
self.additional_properties[key] = value
|
65
|
+
|
66
|
+
def __delitem__(self, key: str) -> None:
|
67
|
+
del self.additional_properties[key]
|
68
|
+
|
69
|
+
def __contains__(self, key: str) -> bool:
|
70
|
+
return key in self.additional_properties
|
@@ -0,0 +1,106 @@
|
|
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="PolicyMaxTokens")
|
9
|
+
|
10
|
+
|
11
|
+
@_attrs_define
|
12
|
+
class PolicyMaxTokens:
|
13
|
+
"""PolicyMaxTokens is a local type that wraps a slice of PolicyMaxTokens
|
14
|
+
|
15
|
+
Attributes:
|
16
|
+
granularity (Union[Unset, str]): Granularity
|
17
|
+
input_ (Union[Unset, int]): Input
|
18
|
+
output (Union[Unset, int]): Output
|
19
|
+
ratio_input_over_output (Union[Unset, int]): RatioInputOverOutput
|
20
|
+
step (Union[Unset, int]): Step
|
21
|
+
total (Union[Unset, int]): Total
|
22
|
+
"""
|
23
|
+
|
24
|
+
granularity: Union[Unset, str] = UNSET
|
25
|
+
input_: Union[Unset, int] = UNSET
|
26
|
+
output: Union[Unset, int] = UNSET
|
27
|
+
ratio_input_over_output: Union[Unset, int] = UNSET
|
28
|
+
step: Union[Unset, int] = UNSET
|
29
|
+
total: Union[Unset, int] = UNSET
|
30
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
31
|
+
|
32
|
+
def to_dict(self) -> dict[str, Any]:
|
33
|
+
granularity = self.granularity
|
34
|
+
|
35
|
+
input_ = self.input_
|
36
|
+
|
37
|
+
output = self.output
|
38
|
+
|
39
|
+
ratio_input_over_output = self.ratio_input_over_output
|
40
|
+
|
41
|
+
step = self.step
|
42
|
+
|
43
|
+
total = self.total
|
44
|
+
|
45
|
+
field_dict: dict[str, Any] = {}
|
46
|
+
field_dict.update(self.additional_properties)
|
47
|
+
field_dict.update({})
|
48
|
+
if granularity is not UNSET:
|
49
|
+
field_dict["granularity"] = granularity
|
50
|
+
if input_ is not UNSET:
|
51
|
+
field_dict["input"] = input_
|
52
|
+
if output is not UNSET:
|
53
|
+
field_dict["output"] = output
|
54
|
+
if ratio_input_over_output is not UNSET:
|
55
|
+
field_dict["ratioInputOverOutput"] = ratio_input_over_output
|
56
|
+
if step is not UNSET:
|
57
|
+
field_dict["step"] = step
|
58
|
+
if total is not UNSET:
|
59
|
+
field_dict["total"] = total
|
60
|
+
|
61
|
+
return field_dict
|
62
|
+
|
63
|
+
@classmethod
|
64
|
+
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
|
65
|
+
if not src_dict:
|
66
|
+
return None
|
67
|
+
d = src_dict.copy()
|
68
|
+
granularity = d.pop("granularity", UNSET)
|
69
|
+
|
70
|
+
input_ = d.pop("input", UNSET)
|
71
|
+
|
72
|
+
output = d.pop("output", UNSET)
|
73
|
+
|
74
|
+
ratio_input_over_output = d.pop("ratioInputOverOutput", UNSET)
|
75
|
+
|
76
|
+
step = d.pop("step", UNSET)
|
77
|
+
|
78
|
+
total = d.pop("total", UNSET)
|
79
|
+
|
80
|
+
policy_max_tokens = cls(
|
81
|
+
granularity=granularity,
|
82
|
+
input_=input_,
|
83
|
+
output=output,
|
84
|
+
ratio_input_over_output=ratio_input_over_output,
|
85
|
+
step=step,
|
86
|
+
total=total,
|
87
|
+
)
|
88
|
+
|
89
|
+
policy_max_tokens.additional_properties = d
|
90
|
+
return policy_max_tokens
|
91
|
+
|
92
|
+
@property
|
93
|
+
def additional_keys(self) -> list[str]:
|
94
|
+
return list(self.additional_properties.keys())
|
95
|
+
|
96
|
+
def __getitem__(self, key: str) -> Any:
|
97
|
+
return self.additional_properties[key]
|
98
|
+
|
99
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
100
|
+
self.additional_properties[key] = value
|
101
|
+
|
102
|
+
def __delitem__(self, key: str) -> None:
|
103
|
+
del self.additional_properties[key]
|
104
|
+
|
105
|
+
def __contains__(self, key: str) -> bool:
|
106
|
+
return key in self.additional_properties
|