mithril-client 0.1.0a1__cp314-cp314-macosx_11_0_arm64.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.
- mithril/__init__.py +7 -0
- mithril/_mcli.cpython-314-darwin.so +0 -0
- mithril/_mcli.pyi +7 -0
- mithril/_mcli_entry.py +75 -0
- mithril/api/__init__.py +7 -0
- mithril/api/bindings/.gitattributes +2 -0
- mithril/api/bindings/__init__.py +10 -0
- mithril/api/bindings/api/__init__.py +1 -0
- mithril/api/bindings/api/api_keys/__init__.py +1 -0
- mithril/api/bindings/api/api_keys/create_api_key_v2_api_keys_post.py +179 -0
- mithril/api/bindings/api/api_keys/get_api_keys_v2_api_keys_get.py +141 -0
- mithril/api/bindings/api/api_keys/revoke_api_key_v2_api_keys_key_fid_delete.py +173 -0
- mithril/api/bindings/api/image_versions/__init__.py +1 -0
- mithril/api/bindings/api/image_versions/get_image_versions_v2_image_versions_get.py +141 -0
- mithril/api/bindings/api/image_versions/get_mcc_image_versions_v2_mcc_image_versions_get.py +179 -0
- mithril/api/bindings/api/instance_types/__init__.py +1 -0
- mithril/api/bindings/api/instance_types/get_instance_types_v2_instance_types_get.py +137 -0
- mithril/api/bindings/api/instances/__init__.py +1 -0
- mithril/api/bindings/api/instances/get_instance_status_v2_instances_instance_id_status_get.py +165 -0
- mithril/api/bindings/api/instances/get_instances_v2_instances_get.py +409 -0
- mithril/api/bindings/api/kubernetes_clusters/__init__.py +1 -0
- mithril/api/bindings/api/kubernetes_clusters/create_kubernetes_cluster_v2_kubernetes_clusters_post.py +171 -0
- mithril/api/bindings/api/kubernetes_clusters/delete_kubernetes_cluster_v2_kubernetes_clusters_cluster_fid_delete.py +163 -0
- mithril/api/bindings/api/kubernetes_clusters/get_kubernetes_cluster_v2_kubernetes_clusters_cluster_fid_get.py +165 -0
- mithril/api/bindings/api/kubernetes_clusters/get_kubernetes_clusters_v2_kubernetes_clusters_get.py +175 -0
- mithril/api/bindings/api/lifecycle_scripts/__init__.py +1 -0
- mithril/api/bindings/api/lifecycle_scripts/create_lifecycle_script_v2_lifecycle_scripts_post.py +171 -0
- mithril/api/bindings/api/lifecycle_scripts/delete_lifecycle_script_v2_lifecycle_scripts_ls_fid_delete.py +155 -0
- mithril/api/bindings/api/lifecycle_scripts/get_lifecycle_script_content_v2_lifecycle_scripts_ls_fid_content_get.py +155 -0
- mithril/api/bindings/api/lifecycle_scripts/list_lifecycle_scripts_v2_lifecycle_scripts_get.py +247 -0
- mithril/api/bindings/api/lifecycle_scripts/update_lifecycle_script_v2_lifecycle_scripts_ls_fid_patch.py +179 -0
- mithril/api/bindings/api/pricing/__init__.py +1 -0
- mithril/api/bindings/api/pricing/get_current_prices_v2_v2_pricing_current_get.py +217 -0
- mithril/api/bindings/api/pricing/get_historical_prices_v2_v2_pricing_history_get.py +222 -0
- mithril/api/bindings/api/profile/__init__.py +1 -0
- mithril/api/bindings/api/profile/get_me_v2_me_get.py +132 -0
- mithril/api/bindings/api/profile/get_my_teammates_v2_me_teammates_get.py +153 -0
- mithril/api/bindings/api/projects/__init__.py +1 -0
- mithril/api/bindings/api/projects/get_projects_v2_projects_get.py +137 -0
- mithril/api/bindings/api/quotas/__init__.py +1 -0
- mithril/api/bindings/api/quotas/get_quotas_v2_quotas_get.py +175 -0
- mithril/api/bindings/api/reservations/__init__.py +1 -0
- mithril/api/bindings/api/reservations/create_reservation_v2_reservation_post.py +171 -0
- mithril/api/bindings/api/reservations/extend_reservation_v2_reservation_reservation_fid_extend_post.py +187 -0
- mithril/api/bindings/api/reservations/get_availability_v2_reservation_availability_get.py +664 -0
- mithril/api/bindings/api/reservations/get_extension_availability_v2_reservation_reservation_fid_extension_availability_get.py +165 -0
- mithril/api/bindings/api/reservations/get_reservations_v2_reservation_get.py +309 -0
- mithril/api/bindings/api/reservations/update_reservation_v2_reservation_reservation_fid_patch.py +187 -0
- mithril/api/bindings/api/spot/__init__.py +1 -0
- mithril/api/bindings/api/spot/cancel_bid_v2_spot_bids_bid_fid_delete.py +161 -0
- mithril/api/bindings/api/spot/create_bid_v2_spot_bids_post.py +171 -0
- mithril/api/bindings/api/spot/get_auctions_v2_spot_availability_get.py +137 -0
- mithril/api/bindings/api/spot/get_bid_history_v2_spot_bids_bid_fid_history_get.py +193 -0
- mithril/api/bindings/api/spot/get_bid_status_v2_spot_bids_bid_fid_status_get.py +189 -0
- mithril/api/bindings/api/spot/get_bid_v2_spot_bids_bid_fid_get.py +163 -0
- mithril/api/bindings/api/spot/get_bids_v2_spot_bids_get.py +330 -0
- mithril/api/bindings/api/spot/update_bid_v2_spot_bids_bid_fid_patch.py +185 -0
- mithril/api/bindings/api/ssh_keys/__init__.py +1 -0
- mithril/api/bindings/api/ssh_keys/create_ssh_key_v2_ssh_keys_post.py +175 -0
- mithril/api/bindings/api/ssh_keys/delete_ssh_key_v2_ssh_keys_ssh_key_fid_delete.py +167 -0
- mithril/api/bindings/api/ssh_keys/get_ssh_keys_v2_ssh_keys_get.py +175 -0
- mithril/api/bindings/api/ssh_keys/update_ssh_key_v2_ssh_keys_ssh_key_fid_patch.py +187 -0
- mithril/api/bindings/api/volumes/__init__.py +1 -0
- mithril/api/bindings/api/volumes/create_volume_v2_volumes_post.py +211 -0
- mithril/api/bindings/api/volumes/delete_volume_v2_volumes_volume_fid_delete.py +199 -0
- mithril/api/bindings/api/volumes/get_volumes_v2_volumes_get.py +239 -0
- mithril/api/bindings/api/volumes/update_volume_v2_volumes_volume_fid_patch.py +243 -0
- mithril/api/bindings/client.py +284 -0
- mithril/api/bindings/errors.py +18 -0
- mithril/api/bindings/models/__init__.py +169 -0
- mithril/api/bindings/models/api_key_model.py +114 -0
- mithril/api/bindings/models/auction_model.py +146 -0
- mithril/api/bindings/models/availability_slot_model.py +76 -0
- mithril/api/bindings/models/bid_history_event_model.py +157 -0
- mithril/api/bindings/models/bid_history_event_model_event_type.py +19 -0
- mithril/api/bindings/models/bid_history_response.py +84 -0
- mithril/api/bindings/models/bid_model.py +191 -0
- mithril/api/bindings/models/bid_model_status.py +14 -0
- mithril/api/bindings/models/bid_status_response.py +72 -0
- mithril/api/bindings/models/bid_status_response_status.py +15 -0
- mithril/api/bindings/models/check_availability_response.py +60 -0
- mithril/api/bindings/models/create_api_key_request.py +68 -0
- mithril/api/bindings/models/create_api_key_response.py +122 -0
- mithril/api/bindings/models/create_bid_request.py +116 -0
- mithril/api/bindings/models/create_kubernetes_cluster_request.py +136 -0
- mithril/api/bindings/models/create_kubernetes_cluster_request_k8s_version.py +11 -0
- mithril/api/bindings/models/create_lifecycle_script_request.py +115 -0
- mithril/api/bindings/models/create_reservation_request.py +124 -0
- mithril/api/bindings/models/create_ssh_key_request.py +99 -0
- mithril/api/bindings/models/create_volume_request.py +98 -0
- mithril/api/bindings/models/create_volume_request_disk_interface.py +11 -0
- mithril/api/bindings/models/created_ssh_key_model.py +122 -0
- mithril/api/bindings/models/current_prices_response.py +202 -0
- mithril/api/bindings/models/extend_reservation_request.py +60 -0
- mithril/api/bindings/models/extension_availability_response.py +68 -0
- mithril/api/bindings/models/get_availability_v2_reservation_availability_get_mode.py +12 -0
- mithril/api/bindings/models/get_bids_response.py +96 -0
- mithril/api/bindings/models/get_bids_v2_spot_bids_get_sort_by.py +11 -0
- mithril/api/bindings/models/get_bids_v2_spot_bids_get_status.py +14 -0
- mithril/api/bindings/models/get_instances_response.py +96 -0
- mithril/api/bindings/models/get_instances_v2_instances_get_order_type_in_type_0_item.py +11 -0
- mithril/api/bindings/models/get_instances_v2_instances_get_sort_by.py +12 -0
- mithril/api/bindings/models/get_instances_v2_instances_get_status_in_type_0_item.py +24 -0
- mithril/api/bindings/models/get_latest_end_time_response.py +68 -0
- mithril/api/bindings/models/get_reservations_response.py +96 -0
- mithril/api/bindings/models/get_reservations_v2_reservation_get_sort_by.py +11 -0
- mithril/api/bindings/models/get_reservations_v2_reservation_get_status.py +14 -0
- mithril/api/bindings/models/historical_price_point_model.py +94 -0
- mithril/api/bindings/models/historical_prices_response_model.py +76 -0
- mithril/api/bindings/models/http_validation_error.py +78 -0
- mithril/api/bindings/models/image_version_model.py +224 -0
- mithril/api/bindings/models/instance_model.py +211 -0
- mithril/api/bindings/models/instance_model_status.py +24 -0
- mithril/api/bindings/models/instance_status_response.py +141 -0
- mithril/api/bindings/models/instance_status_response_status.py +24 -0
- mithril/api/bindings/models/instance_type_model.py +170 -0
- mithril/api/bindings/models/kubernetes_cluster_model.py +207 -0
- mithril/api/bindings/models/kubernetes_cluster_model_status.py +12 -0
- mithril/api/bindings/models/launch_specification_model.py +152 -0
- mithril/api/bindings/models/lifecycle_script_model.py +134 -0
- mithril/api/bindings/models/lifecycle_script_scope.py +12 -0
- mithril/api/bindings/models/list_lifecycle_scripts_response.py +96 -0
- mithril/api/bindings/models/list_lifecycle_scripts_v2_lifecycle_scripts_get_sort_by.py +11 -0
- mithril/api/bindings/models/me_response.py +126 -0
- mithril/api/bindings/models/new_ssh_key_model.py +100 -0
- mithril/api/bindings/models/persistent_disk_change.py +92 -0
- mithril/api/bindings/models/project_model.py +76 -0
- mithril/api/bindings/models/public_lifecycle_script_scope.py +11 -0
- mithril/api/bindings/models/quota_model.py +132 -0
- mithril/api/bindings/models/reservation_model.py +215 -0
- mithril/api/bindings/models/reservation_model_status.py +14 -0
- mithril/api/bindings/models/size.py +70 -0
- mithril/api/bindings/models/size_unit.py +18 -0
- mithril/api/bindings/models/sort_direction.py +11 -0
- mithril/api/bindings/models/teammate_response.py +158 -0
- mithril/api/bindings/models/update_bid_request.py +143 -0
- mithril/api/bindings/models/update_lifecycle_script_request.py +109 -0
- mithril/api/bindings/models/update_reservation_request.py +103 -0
- mithril/api/bindings/models/update_ssh_key_request.py +60 -0
- mithril/api/bindings/models/update_volume_request.py +65 -0
- mithril/api/bindings/models/validation_error.py +89 -0
- mithril/api/bindings/models/volume_model.py +140 -0
- mithril/api/bindings/models/volume_model_attachments.py +46 -0
- mithril/api/bindings/models/volume_model_interface.py +11 -0
- mithril/api/bindings/types.py +56 -0
- mithril/api/client.py +138 -0
- mithril/cli/__init__.py +7 -0
- mithril/cli/commands/__init__.py +15 -0
- mithril/cli/commands/help.py +88 -0
- mithril/cli/commands/launch.py +353 -0
- mithril/cli/main.py +68 -0
- mithril/cli/utils/__init__.py +1 -0
- mithril/cli/utils/skypilot_passthrough.py +38 -0
- mithril/cli/utils/streaming.py +235 -0
- mithril/cli/utils/volumes.py +110 -0
- mithril/config.py +47 -0
- mithril/py.typed +0 -0
- mithril/sky/__init__.py +141 -0
- mithril/sky/client.py +176 -0
- mithril_client-0.1.0a1.dist-info/METADATA +56 -0
- mithril_client-0.1.0a1.dist-info/RECORD +163 -0
- mithril_client-0.1.0a1.dist-info/WHEEL +4 -0
- mithril_client-0.1.0a1.dist-info/entry_points.txt +3 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import Any, Self, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
from ..models.kubernetes_cluster_model_status import KubernetesClusterModelStatus
|
|
10
|
+
from ..types import UNSET, Unset
|
|
11
|
+
|
|
12
|
+
T = TypeVar("T", bound="KubernetesClusterModel")
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@_attrs_define
|
|
16
|
+
class KubernetesClusterModel:
|
|
17
|
+
"""Attributes:
|
|
18
|
+
fid (str):
|
|
19
|
+
project (str):
|
|
20
|
+
name (str):
|
|
21
|
+
region (str):
|
|
22
|
+
created_at (str):
|
|
23
|
+
ssh_keys (list[str]):
|
|
24
|
+
instances (list[str]):
|
|
25
|
+
status (KubernetesClusterModelStatus):
|
|
26
|
+
k8s_version (str):
|
|
27
|
+
kube_host (None | str | Unset):
|
|
28
|
+
join_command (None | str | Unset):
|
|
29
|
+
deleted_at (None | str | Unset):
|
|
30
|
+
user_fid (None | str | Unset):
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
fid: str
|
|
34
|
+
project: str
|
|
35
|
+
name: str
|
|
36
|
+
region: str
|
|
37
|
+
created_at: str
|
|
38
|
+
ssh_keys: list[str]
|
|
39
|
+
instances: list[str]
|
|
40
|
+
status: KubernetesClusterModelStatus
|
|
41
|
+
k8s_version: str
|
|
42
|
+
kube_host: None | str | Unset = UNSET
|
|
43
|
+
join_command: None | str | Unset = UNSET
|
|
44
|
+
deleted_at: None | str | Unset = UNSET
|
|
45
|
+
user_fid: None | str | Unset = UNSET
|
|
46
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
47
|
+
|
|
48
|
+
def to_dict(self) -> dict[str, Any]:
|
|
49
|
+
fid = self.fid
|
|
50
|
+
|
|
51
|
+
project = self.project
|
|
52
|
+
|
|
53
|
+
name = self.name
|
|
54
|
+
|
|
55
|
+
region = self.region
|
|
56
|
+
|
|
57
|
+
created_at = self.created_at
|
|
58
|
+
|
|
59
|
+
ssh_keys = self.ssh_keys
|
|
60
|
+
|
|
61
|
+
instances = self.instances
|
|
62
|
+
|
|
63
|
+
status = self.status.value
|
|
64
|
+
|
|
65
|
+
k8s_version = self.k8s_version
|
|
66
|
+
|
|
67
|
+
kube_host: None | str | Unset
|
|
68
|
+
if isinstance(self.kube_host, Unset):
|
|
69
|
+
kube_host = UNSET
|
|
70
|
+
else:
|
|
71
|
+
kube_host = self.kube_host
|
|
72
|
+
|
|
73
|
+
join_command: None | str | Unset
|
|
74
|
+
if isinstance(self.join_command, Unset):
|
|
75
|
+
join_command = UNSET
|
|
76
|
+
else:
|
|
77
|
+
join_command = self.join_command
|
|
78
|
+
|
|
79
|
+
deleted_at: None | str | Unset
|
|
80
|
+
if isinstance(self.deleted_at, Unset):
|
|
81
|
+
deleted_at = UNSET
|
|
82
|
+
else:
|
|
83
|
+
deleted_at = self.deleted_at
|
|
84
|
+
|
|
85
|
+
user_fid: None | str | Unset
|
|
86
|
+
if isinstance(self.user_fid, Unset):
|
|
87
|
+
user_fid = UNSET
|
|
88
|
+
else:
|
|
89
|
+
user_fid = self.user_fid
|
|
90
|
+
|
|
91
|
+
field_dict: dict[str, Any] = {}
|
|
92
|
+
field_dict.update(self.additional_properties)
|
|
93
|
+
field_dict.update(
|
|
94
|
+
{
|
|
95
|
+
"fid": fid,
|
|
96
|
+
"project": project,
|
|
97
|
+
"name": name,
|
|
98
|
+
"region": region,
|
|
99
|
+
"created_at": created_at,
|
|
100
|
+
"ssh_keys": ssh_keys,
|
|
101
|
+
"instances": instances,
|
|
102
|
+
"status": status,
|
|
103
|
+
"k8s_version": k8s_version,
|
|
104
|
+
}
|
|
105
|
+
)
|
|
106
|
+
if kube_host is not UNSET:
|
|
107
|
+
field_dict["kube_host"] = kube_host
|
|
108
|
+
if join_command is not UNSET:
|
|
109
|
+
field_dict["join_command"] = join_command
|
|
110
|
+
if deleted_at is not UNSET:
|
|
111
|
+
field_dict["deleted_at"] = deleted_at
|
|
112
|
+
if user_fid is not UNSET:
|
|
113
|
+
field_dict["user_fid"] = user_fid
|
|
114
|
+
|
|
115
|
+
return field_dict
|
|
116
|
+
|
|
117
|
+
@classmethod
|
|
118
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
119
|
+
d = dict(src_dict)
|
|
120
|
+
fid = d.pop("fid")
|
|
121
|
+
|
|
122
|
+
project = d.pop("project")
|
|
123
|
+
|
|
124
|
+
name = d.pop("name")
|
|
125
|
+
|
|
126
|
+
region = d.pop("region")
|
|
127
|
+
|
|
128
|
+
created_at = d.pop("created_at")
|
|
129
|
+
|
|
130
|
+
ssh_keys = cast(list[str], d.pop("ssh_keys"))
|
|
131
|
+
|
|
132
|
+
instances = cast(list[str], d.pop("instances"))
|
|
133
|
+
|
|
134
|
+
status = KubernetesClusterModelStatus(d.pop("status"))
|
|
135
|
+
|
|
136
|
+
k8s_version = d.pop("k8s_version")
|
|
137
|
+
|
|
138
|
+
def _parse_kube_host(data: object) -> None | str | Unset:
|
|
139
|
+
if data is None:
|
|
140
|
+
return data
|
|
141
|
+
if isinstance(data, Unset):
|
|
142
|
+
return data
|
|
143
|
+
return cast(None | str | Unset, data)
|
|
144
|
+
|
|
145
|
+
kube_host = _parse_kube_host(d.pop("kube_host", UNSET))
|
|
146
|
+
|
|
147
|
+
def _parse_join_command(data: object) -> None | str | Unset:
|
|
148
|
+
if data is None:
|
|
149
|
+
return data
|
|
150
|
+
if isinstance(data, Unset):
|
|
151
|
+
return data
|
|
152
|
+
return cast(None | str | Unset, data)
|
|
153
|
+
|
|
154
|
+
join_command = _parse_join_command(d.pop("join_command", UNSET))
|
|
155
|
+
|
|
156
|
+
def _parse_deleted_at(data: object) -> None | str | Unset:
|
|
157
|
+
if data is None:
|
|
158
|
+
return data
|
|
159
|
+
if isinstance(data, Unset):
|
|
160
|
+
return data
|
|
161
|
+
return cast(None | str | Unset, data)
|
|
162
|
+
|
|
163
|
+
deleted_at = _parse_deleted_at(d.pop("deleted_at", UNSET))
|
|
164
|
+
|
|
165
|
+
def _parse_user_fid(data: object) -> None | str | Unset:
|
|
166
|
+
if data is None:
|
|
167
|
+
return data
|
|
168
|
+
if isinstance(data, Unset):
|
|
169
|
+
return data
|
|
170
|
+
return cast(None | str | Unset, data)
|
|
171
|
+
|
|
172
|
+
user_fid = _parse_user_fid(d.pop("user_fid", UNSET))
|
|
173
|
+
|
|
174
|
+
kubernetes_cluster_model = cls(
|
|
175
|
+
fid=fid,
|
|
176
|
+
project=project,
|
|
177
|
+
name=name,
|
|
178
|
+
region=region,
|
|
179
|
+
created_at=created_at,
|
|
180
|
+
ssh_keys=ssh_keys,
|
|
181
|
+
instances=instances,
|
|
182
|
+
status=status,
|
|
183
|
+
k8s_version=k8s_version,
|
|
184
|
+
kube_host=kube_host,
|
|
185
|
+
join_command=join_command,
|
|
186
|
+
deleted_at=deleted_at,
|
|
187
|
+
user_fid=user_fid,
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
kubernetes_cluster_model.additional_properties = d
|
|
191
|
+
return kubernetes_cluster_model
|
|
192
|
+
|
|
193
|
+
@property
|
|
194
|
+
def additional_keys(self) -> list[str]:
|
|
195
|
+
return list(self.additional_properties.keys())
|
|
196
|
+
|
|
197
|
+
def __getitem__(self, key: str) -> Any:
|
|
198
|
+
return self.additional_properties[key]
|
|
199
|
+
|
|
200
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
201
|
+
self.additional_properties[key] = value
|
|
202
|
+
|
|
203
|
+
def __delitem__(self, key: str) -> None:
|
|
204
|
+
del self.additional_properties[key]
|
|
205
|
+
|
|
206
|
+
def __contains__(self, key: str) -> bool:
|
|
207
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import Any, Self, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
from ..types import UNSET, Unset
|
|
10
|
+
|
|
11
|
+
T = TypeVar("T", bound="LaunchSpecificationModel")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@_attrs_define
|
|
15
|
+
class LaunchSpecificationModel:
|
|
16
|
+
"""Attributes:
|
|
17
|
+
volumes (list[str]): List of volume FIDs
|
|
18
|
+
ssh_keys (list[str]): List of SSH key FIDs
|
|
19
|
+
startup_script (None | str | Unset):
|
|
20
|
+
kubernetes_cluster (None | str | Unset):
|
|
21
|
+
image_version (None | str | Unset):
|
|
22
|
+
memory_gb (int | None | Unset):
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
volumes: list[str]
|
|
26
|
+
ssh_keys: list[str]
|
|
27
|
+
startup_script: None | str | Unset = UNSET
|
|
28
|
+
kubernetes_cluster: None | str | Unset = UNSET
|
|
29
|
+
image_version: None | str | Unset = UNSET
|
|
30
|
+
memory_gb: int | None | Unset = UNSET
|
|
31
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
32
|
+
|
|
33
|
+
def to_dict(self) -> dict[str, Any]:
|
|
34
|
+
volumes = self.volumes
|
|
35
|
+
|
|
36
|
+
ssh_keys = self.ssh_keys
|
|
37
|
+
|
|
38
|
+
startup_script: None | str | Unset
|
|
39
|
+
if isinstance(self.startup_script, Unset):
|
|
40
|
+
startup_script = UNSET
|
|
41
|
+
else:
|
|
42
|
+
startup_script = self.startup_script
|
|
43
|
+
|
|
44
|
+
kubernetes_cluster: None | str | Unset
|
|
45
|
+
if isinstance(self.kubernetes_cluster, Unset):
|
|
46
|
+
kubernetes_cluster = UNSET
|
|
47
|
+
else:
|
|
48
|
+
kubernetes_cluster = self.kubernetes_cluster
|
|
49
|
+
|
|
50
|
+
image_version: None | str | Unset
|
|
51
|
+
if isinstance(self.image_version, Unset):
|
|
52
|
+
image_version = UNSET
|
|
53
|
+
else:
|
|
54
|
+
image_version = self.image_version
|
|
55
|
+
|
|
56
|
+
memory_gb: int | None | Unset
|
|
57
|
+
if isinstance(self.memory_gb, Unset):
|
|
58
|
+
memory_gb = UNSET
|
|
59
|
+
else:
|
|
60
|
+
memory_gb = self.memory_gb
|
|
61
|
+
|
|
62
|
+
field_dict: dict[str, Any] = {}
|
|
63
|
+
field_dict.update(self.additional_properties)
|
|
64
|
+
field_dict.update(
|
|
65
|
+
{
|
|
66
|
+
"volumes": volumes,
|
|
67
|
+
"ssh_keys": ssh_keys,
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
if startup_script is not UNSET:
|
|
71
|
+
field_dict["startup_script"] = startup_script
|
|
72
|
+
if kubernetes_cluster is not UNSET:
|
|
73
|
+
field_dict["kubernetes_cluster"] = kubernetes_cluster
|
|
74
|
+
if image_version is not UNSET:
|
|
75
|
+
field_dict["image_version"] = image_version
|
|
76
|
+
if memory_gb is not UNSET:
|
|
77
|
+
field_dict["memory_gb"] = memory_gb
|
|
78
|
+
|
|
79
|
+
return field_dict
|
|
80
|
+
|
|
81
|
+
@classmethod
|
|
82
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
83
|
+
d = dict(src_dict)
|
|
84
|
+
volumes = cast(list[str], d.pop("volumes"))
|
|
85
|
+
|
|
86
|
+
ssh_keys = cast(list[str], d.pop("ssh_keys"))
|
|
87
|
+
|
|
88
|
+
def _parse_startup_script(data: object) -> None | str | Unset:
|
|
89
|
+
if data is None:
|
|
90
|
+
return data
|
|
91
|
+
if isinstance(data, Unset):
|
|
92
|
+
return data
|
|
93
|
+
return cast(None | str | Unset, data)
|
|
94
|
+
|
|
95
|
+
startup_script = _parse_startup_script(d.pop("startup_script", UNSET))
|
|
96
|
+
|
|
97
|
+
def _parse_kubernetes_cluster(data: object) -> None | str | Unset:
|
|
98
|
+
if data is None:
|
|
99
|
+
return data
|
|
100
|
+
if isinstance(data, Unset):
|
|
101
|
+
return data
|
|
102
|
+
return cast(None | str | Unset, data)
|
|
103
|
+
|
|
104
|
+
kubernetes_cluster = _parse_kubernetes_cluster(
|
|
105
|
+
d.pop("kubernetes_cluster", UNSET)
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
def _parse_image_version(data: object) -> None | str | Unset:
|
|
109
|
+
if data is None:
|
|
110
|
+
return data
|
|
111
|
+
if isinstance(data, Unset):
|
|
112
|
+
return data
|
|
113
|
+
return cast(None | str | Unset, data)
|
|
114
|
+
|
|
115
|
+
image_version = _parse_image_version(d.pop("image_version", UNSET))
|
|
116
|
+
|
|
117
|
+
def _parse_memory_gb(data: object) -> int | None | Unset:
|
|
118
|
+
if data is None:
|
|
119
|
+
return data
|
|
120
|
+
if isinstance(data, Unset):
|
|
121
|
+
return data
|
|
122
|
+
return cast(int | None | Unset, data)
|
|
123
|
+
|
|
124
|
+
memory_gb = _parse_memory_gb(d.pop("memory_gb", UNSET))
|
|
125
|
+
|
|
126
|
+
launch_specification_model = cls(
|
|
127
|
+
volumes=volumes,
|
|
128
|
+
ssh_keys=ssh_keys,
|
|
129
|
+
startup_script=startup_script,
|
|
130
|
+
kubernetes_cluster=kubernetes_cluster,
|
|
131
|
+
image_version=image_version,
|
|
132
|
+
memory_gb=memory_gb,
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
launch_specification_model.additional_properties = d
|
|
136
|
+
return launch_specification_model
|
|
137
|
+
|
|
138
|
+
@property
|
|
139
|
+
def additional_keys(self) -> list[str]:
|
|
140
|
+
return list(self.additional_properties.keys())
|
|
141
|
+
|
|
142
|
+
def __getitem__(self, key: str) -> Any:
|
|
143
|
+
return self.additional_properties[key]
|
|
144
|
+
|
|
145
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
146
|
+
self.additional_properties[key] = value
|
|
147
|
+
|
|
148
|
+
def __delitem__(self, key: str) -> None:
|
|
149
|
+
del self.additional_properties[key]
|
|
150
|
+
|
|
151
|
+
def __contains__(self, key: str) -> bool:
|
|
152
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import Any, Self, TypeVar
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
from ..models.lifecycle_script_scope import LifecycleScriptScope
|
|
10
|
+
|
|
11
|
+
T = TypeVar("T", bound="LifecycleScriptModel")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@_attrs_define
|
|
15
|
+
class LifecycleScriptModel:
|
|
16
|
+
"""Attributes:
|
|
17
|
+
fid (str):
|
|
18
|
+
name (str):
|
|
19
|
+
description (str):
|
|
20
|
+
content_url (str):
|
|
21
|
+
project (str):
|
|
22
|
+
created_at (str):
|
|
23
|
+
created_by (str):
|
|
24
|
+
last_modified_at (str):
|
|
25
|
+
last_modified_by (str):
|
|
26
|
+
scope (LifecycleScriptScope):
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
fid: str
|
|
30
|
+
name: str
|
|
31
|
+
description: str
|
|
32
|
+
content_url: str
|
|
33
|
+
project: str
|
|
34
|
+
created_at: str
|
|
35
|
+
created_by: str
|
|
36
|
+
last_modified_at: str
|
|
37
|
+
last_modified_by: str
|
|
38
|
+
scope: LifecycleScriptScope
|
|
39
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
40
|
+
|
|
41
|
+
def to_dict(self) -> dict[str, Any]:
|
|
42
|
+
fid = self.fid
|
|
43
|
+
|
|
44
|
+
name = self.name
|
|
45
|
+
|
|
46
|
+
description = self.description
|
|
47
|
+
|
|
48
|
+
content_url = self.content_url
|
|
49
|
+
|
|
50
|
+
project = self.project
|
|
51
|
+
|
|
52
|
+
created_at = self.created_at
|
|
53
|
+
|
|
54
|
+
created_by = self.created_by
|
|
55
|
+
|
|
56
|
+
last_modified_at = self.last_modified_at
|
|
57
|
+
|
|
58
|
+
last_modified_by = self.last_modified_by
|
|
59
|
+
|
|
60
|
+
scope = self.scope.value
|
|
61
|
+
|
|
62
|
+
field_dict: dict[str, Any] = {}
|
|
63
|
+
field_dict.update(self.additional_properties)
|
|
64
|
+
field_dict.update(
|
|
65
|
+
{
|
|
66
|
+
"fid": fid,
|
|
67
|
+
"name": name,
|
|
68
|
+
"description": description,
|
|
69
|
+
"content_url": content_url,
|
|
70
|
+
"project": project,
|
|
71
|
+
"created_at": created_at,
|
|
72
|
+
"created_by": created_by,
|
|
73
|
+
"last_modified_at": last_modified_at,
|
|
74
|
+
"last_modified_by": last_modified_by,
|
|
75
|
+
"scope": scope,
|
|
76
|
+
}
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
return field_dict
|
|
80
|
+
|
|
81
|
+
@classmethod
|
|
82
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
83
|
+
d = dict(src_dict)
|
|
84
|
+
fid = d.pop("fid")
|
|
85
|
+
|
|
86
|
+
name = d.pop("name")
|
|
87
|
+
|
|
88
|
+
description = d.pop("description")
|
|
89
|
+
|
|
90
|
+
content_url = d.pop("content_url")
|
|
91
|
+
|
|
92
|
+
project = d.pop("project")
|
|
93
|
+
|
|
94
|
+
created_at = d.pop("created_at")
|
|
95
|
+
|
|
96
|
+
created_by = d.pop("created_by")
|
|
97
|
+
|
|
98
|
+
last_modified_at = d.pop("last_modified_at")
|
|
99
|
+
|
|
100
|
+
last_modified_by = d.pop("last_modified_by")
|
|
101
|
+
|
|
102
|
+
scope = LifecycleScriptScope(d.pop("scope"))
|
|
103
|
+
|
|
104
|
+
lifecycle_script_model = cls(
|
|
105
|
+
fid=fid,
|
|
106
|
+
name=name,
|
|
107
|
+
description=description,
|
|
108
|
+
content_url=content_url,
|
|
109
|
+
project=project,
|
|
110
|
+
created_at=created_at,
|
|
111
|
+
created_by=created_by,
|
|
112
|
+
last_modified_at=last_modified_at,
|
|
113
|
+
last_modified_by=last_modified_by,
|
|
114
|
+
scope=scope,
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
lifecycle_script_model.additional_properties = d
|
|
118
|
+
return lifecycle_script_model
|
|
119
|
+
|
|
120
|
+
@property
|
|
121
|
+
def additional_keys(self) -> list[str]:
|
|
122
|
+
return list(self.additional_properties.keys())
|
|
123
|
+
|
|
124
|
+
def __getitem__(self, key: str) -> Any:
|
|
125
|
+
return self.additional_properties[key]
|
|
126
|
+
|
|
127
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
128
|
+
self.additional_properties[key] = value
|
|
129
|
+
|
|
130
|
+
def __delitem__(self, key: str) -> None:
|
|
131
|
+
del self.additional_properties[key]
|
|
132
|
+
|
|
133
|
+
def __contains__(self, key: str) -> bool:
|
|
134
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import TYPE_CHECKING, Any, Self, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
from ..types import UNSET, Unset
|
|
10
|
+
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
from ..models.lifecycle_script_model import LifecycleScriptModel
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
T = TypeVar("T", bound="ListLifecycleScriptsResponse")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@_attrs_define
|
|
19
|
+
class ListLifecycleScriptsResponse:
|
|
20
|
+
"""Attributes:
|
|
21
|
+
data (list[LifecycleScriptModel]):
|
|
22
|
+
next_cursor (None | str | Unset):
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
data: list[LifecycleScriptModel]
|
|
26
|
+
next_cursor: None | str | Unset = UNSET
|
|
27
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
28
|
+
|
|
29
|
+
def to_dict(self) -> dict[str, Any]:
|
|
30
|
+
data = []
|
|
31
|
+
for data_item_data in self.data:
|
|
32
|
+
data_item = data_item_data.to_dict()
|
|
33
|
+
data.append(data_item)
|
|
34
|
+
|
|
35
|
+
next_cursor: None | str | Unset
|
|
36
|
+
if isinstance(self.next_cursor, Unset):
|
|
37
|
+
next_cursor = UNSET
|
|
38
|
+
else:
|
|
39
|
+
next_cursor = self.next_cursor
|
|
40
|
+
|
|
41
|
+
field_dict: dict[str, Any] = {}
|
|
42
|
+
field_dict.update(self.additional_properties)
|
|
43
|
+
field_dict.update(
|
|
44
|
+
{
|
|
45
|
+
"data": data,
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
if next_cursor is not UNSET:
|
|
49
|
+
field_dict["next_cursor"] = next_cursor
|
|
50
|
+
|
|
51
|
+
return field_dict
|
|
52
|
+
|
|
53
|
+
@classmethod
|
|
54
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
55
|
+
from ..models.lifecycle_script_model import LifecycleScriptModel
|
|
56
|
+
|
|
57
|
+
d = dict(src_dict)
|
|
58
|
+
data = []
|
|
59
|
+
_data = d.pop("data")
|
|
60
|
+
for data_item_data in _data:
|
|
61
|
+
data_item = LifecycleScriptModel.from_dict(data_item_data)
|
|
62
|
+
|
|
63
|
+
data.append(data_item)
|
|
64
|
+
|
|
65
|
+
def _parse_next_cursor(data: object) -> None | str | Unset:
|
|
66
|
+
if data is None:
|
|
67
|
+
return data
|
|
68
|
+
if isinstance(data, Unset):
|
|
69
|
+
return data
|
|
70
|
+
return cast(None | str | Unset, data)
|
|
71
|
+
|
|
72
|
+
next_cursor = _parse_next_cursor(d.pop("next_cursor", UNSET))
|
|
73
|
+
|
|
74
|
+
list_lifecycle_scripts_response = cls(
|
|
75
|
+
data=data,
|
|
76
|
+
next_cursor=next_cursor,
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
list_lifecycle_scripts_response.additional_properties = d
|
|
80
|
+
return list_lifecycle_scripts_response
|
|
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
|