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,115 @@
|
|
|
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.public_lifecycle_script_scope import PublicLifecycleScriptScope
|
|
10
|
+
from ..types import UNSET, Unset
|
|
11
|
+
|
|
12
|
+
T = TypeVar("T", bound="CreateLifecycleScriptRequest")
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@_attrs_define
|
|
16
|
+
class CreateLifecycleScriptRequest:
|
|
17
|
+
"""Attributes:
|
|
18
|
+
project (str):
|
|
19
|
+
name (str):
|
|
20
|
+
content (str):
|
|
21
|
+
description (None | str | Unset):
|
|
22
|
+
scope (PublicLifecycleScriptScope | Unset):
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
project: str
|
|
26
|
+
name: str
|
|
27
|
+
content: str
|
|
28
|
+
description: None | str | Unset = UNSET
|
|
29
|
+
scope: PublicLifecycleScriptScope | Unset = UNSET
|
|
30
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
31
|
+
|
|
32
|
+
def to_dict(self) -> dict[str, Any]:
|
|
33
|
+
project = self.project
|
|
34
|
+
|
|
35
|
+
name = self.name
|
|
36
|
+
|
|
37
|
+
content = self.content
|
|
38
|
+
|
|
39
|
+
description: None | str | Unset
|
|
40
|
+
if isinstance(self.description, Unset):
|
|
41
|
+
description = UNSET
|
|
42
|
+
else:
|
|
43
|
+
description = self.description
|
|
44
|
+
|
|
45
|
+
scope: str | Unset = UNSET
|
|
46
|
+
if not isinstance(self.scope, Unset):
|
|
47
|
+
scope = self.scope.value
|
|
48
|
+
|
|
49
|
+
field_dict: dict[str, Any] = {}
|
|
50
|
+
field_dict.update(self.additional_properties)
|
|
51
|
+
field_dict.update(
|
|
52
|
+
{
|
|
53
|
+
"project": project,
|
|
54
|
+
"name": name,
|
|
55
|
+
"content": content,
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
if description is not UNSET:
|
|
59
|
+
field_dict["description"] = description
|
|
60
|
+
if scope is not UNSET:
|
|
61
|
+
field_dict["scope"] = scope
|
|
62
|
+
|
|
63
|
+
return field_dict
|
|
64
|
+
|
|
65
|
+
@classmethod
|
|
66
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
67
|
+
d = dict(src_dict)
|
|
68
|
+
project = d.pop("project")
|
|
69
|
+
|
|
70
|
+
name = d.pop("name")
|
|
71
|
+
|
|
72
|
+
content = d.pop("content")
|
|
73
|
+
|
|
74
|
+
def _parse_description(data: object) -> None | str | Unset:
|
|
75
|
+
if data is None:
|
|
76
|
+
return data
|
|
77
|
+
if isinstance(data, Unset):
|
|
78
|
+
return data
|
|
79
|
+
return cast(None | str | Unset, data)
|
|
80
|
+
|
|
81
|
+
description = _parse_description(d.pop("description", UNSET))
|
|
82
|
+
|
|
83
|
+
_scope = d.pop("scope", UNSET)
|
|
84
|
+
scope: PublicLifecycleScriptScope | Unset
|
|
85
|
+
if isinstance(_scope, Unset):
|
|
86
|
+
scope = UNSET
|
|
87
|
+
else:
|
|
88
|
+
scope = PublicLifecycleScriptScope(_scope)
|
|
89
|
+
|
|
90
|
+
create_lifecycle_script_request = cls(
|
|
91
|
+
project=project,
|
|
92
|
+
name=name,
|
|
93
|
+
content=content,
|
|
94
|
+
description=description,
|
|
95
|
+
scope=scope,
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
create_lifecycle_script_request.additional_properties = d
|
|
99
|
+
return create_lifecycle_script_request
|
|
100
|
+
|
|
101
|
+
@property
|
|
102
|
+
def additional_keys(self) -> list[str]:
|
|
103
|
+
return list(self.additional_properties.keys())
|
|
104
|
+
|
|
105
|
+
def __getitem__(self, key: str) -> Any:
|
|
106
|
+
return self.additional_properties[key]
|
|
107
|
+
|
|
108
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
109
|
+
self.additional_properties[key] = value
|
|
110
|
+
|
|
111
|
+
def __delitem__(self, key: str) -> None:
|
|
112
|
+
del self.additional_properties[key]
|
|
113
|
+
|
|
114
|
+
def __contains__(self, key: str) -> bool:
|
|
115
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import TYPE_CHECKING, Any, Self, TypeVar
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from ..models.launch_specification_model import LaunchSpecificationModel
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
T = TypeVar("T", bound="CreateReservationRequest")
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@_attrs_define
|
|
17
|
+
class CreateReservationRequest:
|
|
18
|
+
"""Attributes:
|
|
19
|
+
project (str):
|
|
20
|
+
instance_type (str):
|
|
21
|
+
region (str):
|
|
22
|
+
start_time (str):
|
|
23
|
+
end_time (str):
|
|
24
|
+
instance_quantity (int):
|
|
25
|
+
name (str):
|
|
26
|
+
launch_specification (LaunchSpecificationModel):
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
project: str
|
|
30
|
+
instance_type: str
|
|
31
|
+
region: str
|
|
32
|
+
start_time: str
|
|
33
|
+
end_time: str
|
|
34
|
+
instance_quantity: int
|
|
35
|
+
name: str
|
|
36
|
+
launch_specification: LaunchSpecificationModel
|
|
37
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
38
|
+
|
|
39
|
+
def to_dict(self) -> dict[str, Any]:
|
|
40
|
+
project = self.project
|
|
41
|
+
|
|
42
|
+
instance_type = self.instance_type
|
|
43
|
+
|
|
44
|
+
region = self.region
|
|
45
|
+
|
|
46
|
+
start_time = self.start_time
|
|
47
|
+
|
|
48
|
+
end_time = self.end_time
|
|
49
|
+
|
|
50
|
+
instance_quantity = self.instance_quantity
|
|
51
|
+
|
|
52
|
+
name = self.name
|
|
53
|
+
|
|
54
|
+
launch_specification = self.launch_specification.to_dict()
|
|
55
|
+
|
|
56
|
+
field_dict: dict[str, Any] = {}
|
|
57
|
+
field_dict.update(self.additional_properties)
|
|
58
|
+
field_dict.update(
|
|
59
|
+
{
|
|
60
|
+
"project": project,
|
|
61
|
+
"instance_type": instance_type,
|
|
62
|
+
"region": region,
|
|
63
|
+
"start_time": start_time,
|
|
64
|
+
"end_time": end_time,
|
|
65
|
+
"instance_quantity": instance_quantity,
|
|
66
|
+
"name": name,
|
|
67
|
+
"launch_specification": launch_specification,
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
return field_dict
|
|
72
|
+
|
|
73
|
+
@classmethod
|
|
74
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
75
|
+
from ..models.launch_specification_model import LaunchSpecificationModel
|
|
76
|
+
|
|
77
|
+
d = dict(src_dict)
|
|
78
|
+
project = d.pop("project")
|
|
79
|
+
|
|
80
|
+
instance_type = d.pop("instance_type")
|
|
81
|
+
|
|
82
|
+
region = d.pop("region")
|
|
83
|
+
|
|
84
|
+
start_time = d.pop("start_time")
|
|
85
|
+
|
|
86
|
+
end_time = d.pop("end_time")
|
|
87
|
+
|
|
88
|
+
instance_quantity = d.pop("instance_quantity")
|
|
89
|
+
|
|
90
|
+
name = d.pop("name")
|
|
91
|
+
|
|
92
|
+
launch_specification = LaunchSpecificationModel.from_dict(
|
|
93
|
+
d.pop("launch_specification")
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
create_reservation_request = cls(
|
|
97
|
+
project=project,
|
|
98
|
+
instance_type=instance_type,
|
|
99
|
+
region=region,
|
|
100
|
+
start_time=start_time,
|
|
101
|
+
end_time=end_time,
|
|
102
|
+
instance_quantity=instance_quantity,
|
|
103
|
+
name=name,
|
|
104
|
+
launch_specification=launch_specification,
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
create_reservation_request.additional_properties = d
|
|
108
|
+
return create_reservation_request
|
|
109
|
+
|
|
110
|
+
@property
|
|
111
|
+
def additional_keys(self) -> list[str]:
|
|
112
|
+
return list(self.additional_properties.keys())
|
|
113
|
+
|
|
114
|
+
def __getitem__(self, key: str) -> Any:
|
|
115
|
+
return self.additional_properties[key]
|
|
116
|
+
|
|
117
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
118
|
+
self.additional_properties[key] = value
|
|
119
|
+
|
|
120
|
+
def __delitem__(self, key: str) -> None:
|
|
121
|
+
del self.additional_properties[key]
|
|
122
|
+
|
|
123
|
+
def __contains__(self, key: str) -> bool:
|
|
124
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,99 @@
|
|
|
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="CreateSshKeyRequest")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@_attrs_define
|
|
15
|
+
class CreateSshKeyRequest:
|
|
16
|
+
"""Attributes:
|
|
17
|
+
project (str):
|
|
18
|
+
name (str):
|
|
19
|
+
public_key (None | str | Unset):
|
|
20
|
+
required (bool | Unset): Default: False.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
project: str
|
|
24
|
+
name: str
|
|
25
|
+
public_key: None | str | Unset = UNSET
|
|
26
|
+
required: bool | Unset = False
|
|
27
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
28
|
+
|
|
29
|
+
def to_dict(self) -> dict[str, Any]:
|
|
30
|
+
project = self.project
|
|
31
|
+
|
|
32
|
+
name = self.name
|
|
33
|
+
|
|
34
|
+
public_key: None | str | Unset
|
|
35
|
+
if isinstance(self.public_key, Unset):
|
|
36
|
+
public_key = UNSET
|
|
37
|
+
else:
|
|
38
|
+
public_key = self.public_key
|
|
39
|
+
|
|
40
|
+
required = self.required
|
|
41
|
+
|
|
42
|
+
field_dict: dict[str, Any] = {}
|
|
43
|
+
field_dict.update(self.additional_properties)
|
|
44
|
+
field_dict.update(
|
|
45
|
+
{
|
|
46
|
+
"project": project,
|
|
47
|
+
"name": name,
|
|
48
|
+
}
|
|
49
|
+
)
|
|
50
|
+
if public_key is not UNSET:
|
|
51
|
+
field_dict["public_key"] = public_key
|
|
52
|
+
if required is not UNSET:
|
|
53
|
+
field_dict["required"] = required
|
|
54
|
+
|
|
55
|
+
return field_dict
|
|
56
|
+
|
|
57
|
+
@classmethod
|
|
58
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
59
|
+
d = dict(src_dict)
|
|
60
|
+
project = d.pop("project")
|
|
61
|
+
|
|
62
|
+
name = d.pop("name")
|
|
63
|
+
|
|
64
|
+
def _parse_public_key(data: object) -> None | str | Unset:
|
|
65
|
+
if data is None:
|
|
66
|
+
return data
|
|
67
|
+
if isinstance(data, Unset):
|
|
68
|
+
return data
|
|
69
|
+
return cast(None | str | Unset, data)
|
|
70
|
+
|
|
71
|
+
public_key = _parse_public_key(d.pop("public_key", UNSET))
|
|
72
|
+
|
|
73
|
+
required = d.pop("required", UNSET)
|
|
74
|
+
|
|
75
|
+
create_ssh_key_request = cls(
|
|
76
|
+
project=project,
|
|
77
|
+
name=name,
|
|
78
|
+
public_key=public_key,
|
|
79
|
+
required=required,
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
create_ssh_key_request.additional_properties = d
|
|
83
|
+
return create_ssh_key_request
|
|
84
|
+
|
|
85
|
+
@property
|
|
86
|
+
def additional_keys(self) -> list[str]:
|
|
87
|
+
return list(self.additional_properties.keys())
|
|
88
|
+
|
|
89
|
+
def __getitem__(self, key: str) -> Any:
|
|
90
|
+
return self.additional_properties[key]
|
|
91
|
+
|
|
92
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
93
|
+
self.additional_properties[key] = value
|
|
94
|
+
|
|
95
|
+
def __delitem__(self, key: str) -> None:
|
|
96
|
+
del self.additional_properties[key]
|
|
97
|
+
|
|
98
|
+
def __contains__(self, key: str) -> bool:
|
|
99
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,98 @@
|
|
|
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.create_volume_request_disk_interface import (
|
|
10
|
+
CreateVolumeRequestDiskInterface,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
T = TypeVar("T", bound="CreateVolumeRequest")
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@_attrs_define
|
|
17
|
+
class CreateVolumeRequest:
|
|
18
|
+
"""Request model for creating a new storage volume.
|
|
19
|
+
|
|
20
|
+
Attributes:
|
|
21
|
+
name (str):
|
|
22
|
+
project (str):
|
|
23
|
+
disk_interface (CreateVolumeRequestDiskInterface):
|
|
24
|
+
region (str):
|
|
25
|
+
size_gb (Any):
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
name: str
|
|
29
|
+
project: str
|
|
30
|
+
disk_interface: CreateVolumeRequestDiskInterface
|
|
31
|
+
region: str
|
|
32
|
+
size_gb: Any
|
|
33
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
34
|
+
|
|
35
|
+
def to_dict(self) -> dict[str, Any]:
|
|
36
|
+
name = self.name
|
|
37
|
+
|
|
38
|
+
project = self.project
|
|
39
|
+
|
|
40
|
+
disk_interface = self.disk_interface.value
|
|
41
|
+
|
|
42
|
+
region = self.region
|
|
43
|
+
|
|
44
|
+
size_gb = self.size_gb
|
|
45
|
+
|
|
46
|
+
field_dict: dict[str, Any] = {}
|
|
47
|
+
field_dict.update(self.additional_properties)
|
|
48
|
+
field_dict.update(
|
|
49
|
+
{
|
|
50
|
+
"name": name,
|
|
51
|
+
"project": project,
|
|
52
|
+
"disk_interface": disk_interface,
|
|
53
|
+
"region": region,
|
|
54
|
+
"size_gb": size_gb,
|
|
55
|
+
}
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
return field_dict
|
|
59
|
+
|
|
60
|
+
@classmethod
|
|
61
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
62
|
+
d = dict(src_dict)
|
|
63
|
+
name = d.pop("name")
|
|
64
|
+
|
|
65
|
+
project = d.pop("project")
|
|
66
|
+
|
|
67
|
+
disk_interface = CreateVolumeRequestDiskInterface(d.pop("disk_interface"))
|
|
68
|
+
|
|
69
|
+
region = d.pop("region")
|
|
70
|
+
|
|
71
|
+
size_gb = d.pop("size_gb")
|
|
72
|
+
|
|
73
|
+
create_volume_request = cls(
|
|
74
|
+
name=name,
|
|
75
|
+
project=project,
|
|
76
|
+
disk_interface=disk_interface,
|
|
77
|
+
region=region,
|
|
78
|
+
size_gb=size_gb,
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
create_volume_request.additional_properties = d
|
|
82
|
+
return create_volume_request
|
|
83
|
+
|
|
84
|
+
@property
|
|
85
|
+
def additional_keys(self) -> list[str]:
|
|
86
|
+
return list(self.additional_properties.keys())
|
|
87
|
+
|
|
88
|
+
def __getitem__(self, key: str) -> Any:
|
|
89
|
+
return self.additional_properties[key]
|
|
90
|
+
|
|
91
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
92
|
+
self.additional_properties[key] = value
|
|
93
|
+
|
|
94
|
+
def __delitem__(self, key: str) -> None:
|
|
95
|
+
del self.additional_properties[key]
|
|
96
|
+
|
|
97
|
+
def __contains__(self, key: str) -> bool:
|
|
98
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,122 @@
|
|
|
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="CreatedSshKeyModel")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@_attrs_define
|
|
15
|
+
class CreatedSshKeyModel:
|
|
16
|
+
"""Attributes:
|
|
17
|
+
fid (str):
|
|
18
|
+
name (str):
|
|
19
|
+
project (str):
|
|
20
|
+
public_key (str):
|
|
21
|
+
created_at (str):
|
|
22
|
+
required (bool):
|
|
23
|
+
private_key (None | str | Unset):
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
fid: str
|
|
27
|
+
name: str
|
|
28
|
+
project: str
|
|
29
|
+
public_key: str
|
|
30
|
+
created_at: str
|
|
31
|
+
required: bool
|
|
32
|
+
private_key: None | str | Unset = UNSET
|
|
33
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
34
|
+
|
|
35
|
+
def to_dict(self) -> dict[str, Any]:
|
|
36
|
+
fid = self.fid
|
|
37
|
+
|
|
38
|
+
name = self.name
|
|
39
|
+
|
|
40
|
+
project = self.project
|
|
41
|
+
|
|
42
|
+
public_key = self.public_key
|
|
43
|
+
|
|
44
|
+
created_at = self.created_at
|
|
45
|
+
|
|
46
|
+
required = self.required
|
|
47
|
+
|
|
48
|
+
private_key: None | str | Unset
|
|
49
|
+
if isinstance(self.private_key, Unset):
|
|
50
|
+
private_key = UNSET
|
|
51
|
+
else:
|
|
52
|
+
private_key = self.private_key
|
|
53
|
+
|
|
54
|
+
field_dict: dict[str, Any] = {}
|
|
55
|
+
field_dict.update(self.additional_properties)
|
|
56
|
+
field_dict.update(
|
|
57
|
+
{
|
|
58
|
+
"fid": fid,
|
|
59
|
+
"name": name,
|
|
60
|
+
"project": project,
|
|
61
|
+
"public_key": public_key,
|
|
62
|
+
"created_at": created_at,
|
|
63
|
+
"required": required,
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
if private_key is not UNSET:
|
|
67
|
+
field_dict["private_key"] = private_key
|
|
68
|
+
|
|
69
|
+
return field_dict
|
|
70
|
+
|
|
71
|
+
@classmethod
|
|
72
|
+
def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
|
|
73
|
+
d = dict(src_dict)
|
|
74
|
+
fid = d.pop("fid")
|
|
75
|
+
|
|
76
|
+
name = d.pop("name")
|
|
77
|
+
|
|
78
|
+
project = d.pop("project")
|
|
79
|
+
|
|
80
|
+
public_key = d.pop("public_key")
|
|
81
|
+
|
|
82
|
+
created_at = d.pop("created_at")
|
|
83
|
+
|
|
84
|
+
required = d.pop("required")
|
|
85
|
+
|
|
86
|
+
def _parse_private_key(data: object) -> None | str | Unset:
|
|
87
|
+
if data is None:
|
|
88
|
+
return data
|
|
89
|
+
if isinstance(data, Unset):
|
|
90
|
+
return data
|
|
91
|
+
return cast(None | str | Unset, data)
|
|
92
|
+
|
|
93
|
+
private_key = _parse_private_key(d.pop("private_key", UNSET))
|
|
94
|
+
|
|
95
|
+
created_ssh_key_model = cls(
|
|
96
|
+
fid=fid,
|
|
97
|
+
name=name,
|
|
98
|
+
project=project,
|
|
99
|
+
public_key=public_key,
|
|
100
|
+
created_at=created_at,
|
|
101
|
+
required=required,
|
|
102
|
+
private_key=private_key,
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
created_ssh_key_model.additional_properties = d
|
|
106
|
+
return created_ssh_key_model
|
|
107
|
+
|
|
108
|
+
@property
|
|
109
|
+
def additional_keys(self) -> list[str]:
|
|
110
|
+
return list(self.additional_properties.keys())
|
|
111
|
+
|
|
112
|
+
def __getitem__(self, key: str) -> Any:
|
|
113
|
+
return self.additional_properties[key]
|
|
114
|
+
|
|
115
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
116
|
+
self.additional_properties[key] = value
|
|
117
|
+
|
|
118
|
+
def __delitem__(self, key: str) -> None:
|
|
119
|
+
del self.additional_properties[key]
|
|
120
|
+
|
|
121
|
+
def __contains__(self, key: str) -> bool:
|
|
122
|
+
return key in self.additional_properties
|