hyperstack 0.1.23__py3-none-any.whl → 1.41.0a0__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.
- hyperstack/__init__.py +79 -131
- hyperstack/api/__init__.py +2 -0
- hyperstack/api/alive_api.py +240 -0
- hyperstack/api/api_key_api.py +16 -20
- hyperstack/api/assigning_member_role_api.py +15 -17
- hyperstack/api/auth_api.py +1050 -5
- hyperstack/api/beta_access_api.py +856 -0
- hyperstack/api/billing_api.py +6461 -673
- hyperstack/api/calculate_api.py +8 -9
- hyperstack/api/callbacks_api.py +120 -126
- hyperstack/api/cluster_events_api.py +1 -2
- hyperstack/api/clusters_api.py +2492 -146
- hyperstack/api/compliance_api.py +14 -18
- hyperstack/api/credit_api.py +17 -15
- hyperstack/api/customer_contract_api.py +30 -33
- hyperstack/api/dashboard_api.py +4 -5
- hyperstack/api/deployment_api.py +4 -8
- hyperstack/api/environment_api.py +285 -16
- hyperstack/api/firewall_attachment_api.py +11 -9
- hyperstack/api/firewalls_api.py +341 -347
- hyperstack/api/flavor_api.py +4 -5
- hyperstack/api/floating_ip_api.py +50 -49
- hyperstack/api/gpu_api.py +1 -2
- hyperstack/api/image_api.py +35 -39
- hyperstack/api/invite_api.py +288 -18
- hyperstack/api/keypair_api.py +22 -26
- hyperstack/api/organization_api.py +12 -15
- hyperstack/api/partner_config_api.py +564 -0
- hyperstack/api/payment_api.py +299 -18
- hyperstack/api/permission_api.py +4 -5
- hyperstack/api/policy_api.py +4 -5
- hyperstack/api/pricebook_api.py +14 -12
- hyperstack/api/profile_api.py +13 -17
- hyperstack/api/rbac_role_api.py +20 -25
- hyperstack/api/region_api.py +7 -8
- hyperstack/api/security_rules_api.py +1 -2
- hyperstack/api/snapshot_events_api.py +1 -2
- hyperstack/api/snapshots_api.py +166 -172
- hyperstack/api/stock_api.py +4 -5
- hyperstack/api/template_api.py +14 -19
- hyperstack/api/user_api.py +55 -49
- hyperstack/api/user_detail_choice_api.py +1 -2
- hyperstack/api/user_permission_api.py +8 -10
- hyperstack/api/virtual_machine_api.py +1529 -929
- hyperstack/api/virtual_machine_events_api.py +21 -22
- hyperstack/api/vnc_url_api.py +54 -50
- hyperstack/api/volume_api.py +340 -40
- hyperstack/api/volume_attachment_api.py +342 -42
- hyperstack/api_client.py +1 -1
- hyperstack/configuration.py +154 -47
- hyperstack/models/__init__.py +76 -130
- hyperstack/models/{environment_fieldsfor_volume.py → access_token_field.py} +7 -7
- hyperstack/models/attach_volume_fields.py +6 -2
- hyperstack/models/attach_volumes_payload.py +4 -2
- hyperstack/models/{virtual_machine_usage.py → attachments_fields_for_volume.py} +13 -11
- hyperstack/models/{flavor_vm_fields.py → attributes.py} +15 -18
- hyperstack/models/auth_get_token_response_model.py +4 -6
- hyperstack/models/{future_node_model.py → beta_access_request_fields.py} +27 -25
- hyperstack/models/{create_gpu.py → beta_access_request_payload.py} +9 -11
- hyperstack/models/{create_discount_response.py → beta_access_request_response_model.py} +11 -11
- hyperstack/models/{export_billing_data_request.py → beta_access_status_item.py} +20 -23
- hyperstack/models/{get_all_discount_for_all_organization_response.py → beta_access_status_response_model.py} +15 -15
- hyperstack/models/{exclude_billing_post_response.py → billing_history.py} +13 -11
- hyperstack/models/billing_history_data_synthesis_details.py +105 -0
- hyperstack/models/{vm_usage_response.py → billing_history_fine_tuning.py} +23 -19
- hyperstack/models/billing_history_model_evalutation_details.py +105 -0
- hyperstack/models/{get_all_discounts_fields.py → billing_history_serverless_inference.py} +23 -24
- hyperstack/models/billing_history_serverless_inference_details.py +105 -0
- hyperstack/models/{billingmetricesfields.py → billing_metrices_fields.py} +4 -4
- hyperstack/models/{billingmetricesresponse.py → billing_metrices_response.py} +7 -7
- hyperstack/models/cluster_fields.py +27 -9
- hyperstack/models/{add_update_flavor_organization_payload.py → cluster_flavor_fields.py} +28 -26
- hyperstack/models/{historical_instances_fields.py → cluster_node_fields.py} +24 -22
- hyperstack/models/{internal_instance_flavor_fields.py → cluster_node_group_fields.py} +17 -17
- hyperstack/models/{create_update_policy_response_model.py → cluster_node_groups_create_response.py} +21 -11
- hyperstack/models/{create_update_permission_response_model.py → cluster_node_groups_get_response.py} +11 -11
- hyperstack/models/{auth_request_login_response_model.py → cluster_node_groups_list_response.py} +15 -11
- hyperstack/models/{contract_eligible_instance_fields.py → cluster_node_instance_fields.py} +13 -11
- hyperstack/models/{image_logos.py → cluster_nodes_list_response.py} +14 -14
- hyperstack/models/{internal_environment_fields.py → cluster_version.py} +13 -9
- hyperstack/models/cluster_versions.py +10 -2
- hyperstack/models/{future_nodes_stock_model.py → colors.py} +17 -15
- hyperstack/models/contract_discount_plan_fields.py +3 -1
- hyperstack/models/contract_instance_fields.py +7 -1
- hyperstack/models/{future_node_response_model.py → create_cluster_node_fields.py} +23 -18
- hyperstack/models/{update_gpu.py → create_cluster_node_group_payload.py} +12 -11
- hyperstack/models/create_cluster_payload.py +31 -8
- hyperstack/models/create_environment.py +1 -1
- hyperstack/models/create_instances_payload.py +10 -8
- hyperstack/models/create_profile_payload.py +1 -1
- hyperstack/models/create_snapshot_payload.py +2 -4
- hyperstack/models/create_volume_payload.py +1 -1
- hyperstack/models/data_synthesis_billing_history_details_response_schema.py +95 -0
- hyperstack/models/{deployment_fieldsforstartdeployments.py → deployment_fields_for_start_deployments.py} +4 -4
- hyperstack/models/{editlabelofanexisting_vm_payload.py → edit_label_of_an_existing_vm_payload.py} +4 -4
- hyperstack/models/environment_features.py +14 -2
- hyperstack/models/{node_stocks_payload.py → environment_fields_for_volume.py} +10 -12
- hyperstack/models/flavor_fields.py +3 -1
- hyperstack/models/{customer_fields.py → flavor_label_fields.py} +7 -7
- hyperstack/models/{getcreditandthresholdinfo.py → get_credit_and_threshold_info.py} +4 -4
- hyperstack/models/{getcreditandthresholdinfoinresponse.py → get_credit_and_threshold_info_in_response.py} +7 -7
- hyperstack/models/{region_payload.py → get_instance_logs_response.py} +7 -9
- hyperstack/models/instance_fields.py +14 -4
- hyperstack/models/instance_flavor_fields.py +13 -1
- hyperstack/models/{flavor_response.py → keypair_environment_features.py} +20 -16
- hyperstack/models/{internal_instance_keypair_fields.py → keypair_environment_fields.py} +13 -11
- hyperstack/models/keypair_fields.py +6 -2
- hyperstack/models/{lastdaycostfields.py → last_day_cost_fields.py} +4 -4
- hyperstack/models/{lastdaycostresponse.py → last_day_cost_response.py} +7 -7
- hyperstack/models/{export_billing_data_response.py → logos.py} +13 -9
- hyperstack/models/{creditrequestresponse.py → master_flavors_response.py} +14 -14
- hyperstack/models/{customer_payload.py → mfa_status_fields.py} +8 -10
- hyperstack/models/{gpu.py → mfa_status_response.py} +11 -11
- hyperstack/models/model_evaluation_billing_history_details_response_schema.py +95 -0
- hyperstack/models/{organization_thresholdfields.py → organization_threshold_fields.py} +4 -4
- hyperstack/models/{organizationthresholdupdateresponse.py → organization_threshold_update_response.py} +7 -7
- hyperstack/models/{organizationthresholdsresponse.py → organization_thresholds_response.py} +7 -7
- hyperstack/models/{logo_get_response.py → pagination.py} +12 -12
- hyperstack/models/{billing_response.py → partner_config.py} +31 -20
- hyperstack/models/payment_details_fields.py +5 -1
- hyperstack/models/{logout_payload.py → primary_color.py} +10 -8
- hyperstack/models/region_fields.py +16 -2
- hyperstack/models/{vm_usage_request_payload.py → request_instance_logs_payload.py} +8 -8
- hyperstack/models/{stock_visibility_user_payload.py → request_instance_logs_response.py} +8 -8
- hyperstack/models/{contract_billing_history.py → resource_level_billing_bucket_details_resources.py} +10 -10
- hyperstack/models/{node_response_model.py → resource_level_billing_history_resources_cluster.py} +21 -11
- hyperstack/models/resource_level_billing_history_response_attributes.py +3 -1
- hyperstack/models/{get_all_contracts_response_model.py → resource_level_bucket_billing_details_response_model.py} +11 -15
- hyperstack/models/{contract_billing_history_response_model.py → resource_level_bucket_billing_history_response_model.py} +11 -11
- hyperstack/models/resource_level_cluster_billing_details_response_model.py +95 -0
- hyperstack/models/resource_level_cluster_billing_history_response_model.py +95 -0
- hyperstack/models/{get_discount_detail_response.py → resource_level_cluster_graph_billing_details_response_model.py} +11 -11
- hyperstack/models/{organization_object_response.py → resource_level_graph_billing_details_bucket.py} +18 -14
- hyperstack/models/{update_discounts_status_payload.py → secondary_color.py} +10 -8
- hyperstack/models/{security_rules_fieldsfor_instance.py → security_rules_fields_for_instance.py} +4 -4
- hyperstack/models/serverless_inferenced_billing_history_details_response_schema.py +95 -0
- hyperstack/models/snapshot_fields.py +6 -1
- hyperstack/models/snapshot_retrieve_fields.py +29 -2
- hyperstack/models/start_deployment.py +3 -3
- hyperstack/models/{subscribeorunsubscribeupdatepayload.py → subscribe_or_unsubscribe_update_payload.py} +4 -4
- hyperstack/models/token_based_billing_history_response.py +95 -0
- hyperstack/models/{update_keypairnameresponse.py → update_keypair_name_response.py} +4 -4
- hyperstack/models/update_volume_attachment_payload.py +87 -0
- hyperstack/models/{verify_api_key_payload.py → update_volume_payload.py} +7 -7
- hyperstack/models/{stock_visibility_user_list_response.py → update_volume_response.py} +14 -16
- hyperstack/models/{auth_request_login_fields.py → uris.py} +19 -9
- hyperstack/models/{userinfopostpayload.py → user_info_post_payload.py} +4 -4
- hyperstack/models/{node_stock_response_model.py → user_organizations_response.py} +14 -14
- hyperstack/models/users_info_fields.py +3 -1
- hyperstack/models/volume_attachment_fields.py +9 -5
- hyperstack/models/volume_fields.py +14 -4
- hyperstack/models/{volume_fieldsfor_instance.py → volume_fields_for_instance.py} +4 -4
- hyperstack/models/volumes.py +17 -11
- hyperstack/models/{instances_summary_fields.py → volumes_fields.py} +33 -29
- hyperstack/models/workload_billing_history_response.py +95 -0
- {hyperstack-0.1.23.dist-info → hyperstack-1.41.0a0.dist-info}/METADATA +9 -2
- hyperstack-1.41.0a0.dist-info/RECORD +349 -0
- {hyperstack-0.1.23.dist-info → hyperstack-1.41.0a0.dist-info}/WHEEL +1 -1
- hyperstack/models/api_key_verify_fields.py +0 -93
- hyperstack/models/billing_immune_resources_response.py +0 -95
- hyperstack/models/contract_billing_history_response_attributes.py +0 -99
- hyperstack/models/contract_change_payload.py +0 -101
- hyperstack/models/contract_eligible_instances_response.py +0 -101
- hyperstack/models/contract_event_create_model.py +0 -91
- hyperstack/models/contract_resource_payload.py +0 -95
- hyperstack/models/contractl_billing_history_response_metrics.py +0 -87
- hyperstack/models/create_contract_fields.py +0 -110
- hyperstack/models/create_contract_payload.py +0 -106
- hyperstack/models/create_discounts_payload.py +0 -112
- hyperstack/models/create_update_permission_payload.py +0 -93
- hyperstack/models/create_update_policy_payload.py +0 -93
- hyperstack/models/creditrechargelimitfield.py +0 -93
- hyperstack/models/creditrechargelimitresponse.py +0 -99
- hyperstack/models/creditrequests.py +0 -96
- hyperstack/models/data.py +0 -91
- hyperstack/models/discount_entity_model.py +0 -97
- hyperstack/models/discount_fields.py +0 -100
- hyperstack/models/discount_plan_fields.py +0 -108
- hyperstack/models/discount_resource_fields.py +0 -93
- hyperstack/models/discount_resource_payload.py +0 -93
- hyperstack/models/exclude_billing_post_payload.py +0 -91
- hyperstack/models/field_change.py +0 -91
- hyperstack/models/flavor_payload.py +0 -101
- hyperstack/models/flavor_vms_response.py +0 -99
- hyperstack/models/future_node_stock_model.py +0 -93
- hyperstack/models/future_node_update_model.py +0 -98
- hyperstack/models/get_all_contract_fields.py +0 -100
- hyperstack/models/get_discount_response.py +0 -99
- hyperstack/models/get_entity_discount_detail_response.py +0 -108
- hyperstack/models/get_token_payload.py +0 -89
- hyperstack/models/get_version_response.py +0 -91
- hyperstack/models/historical_instance.py +0 -101
- hyperstack/models/infrahub_resource_object_response.py +0 -119
- hyperstack/models/insert_discount_plan_fields.py +0 -112
- hyperstack/models/internal_instance_fields.py +0 -156
- hyperstack/models/internal_instance_image_fields.py +0 -95
- hyperstack/models/internal_instances_response.py +0 -99
- hyperstack/models/internal_security_rules_fields_for_instance.py +0 -104
- hyperstack/models/internal_volume_attachment_fields.py +0 -98
- hyperstack/models/internal_volume_fields.py +0 -95
- hyperstack/models/internal_volumes_response.py +0 -99
- hyperstack/models/new_stock_update_response_model.py +0 -89
- hyperstack/models/node_model.py +0 -114
- hyperstack/models/node_payload_model.py +0 -97
- hyperstack/models/node_power_usage_model.py +0 -120
- hyperstack/models/node_stock_payload_model.py +0 -95
- hyperstack/models/organizationcreditrechargelimitresponse.py +0 -95
- hyperstack/models/power_usage_model.py +0 -89
- hyperstack/models/pricebook_resource_object_response.py +0 -107
- hyperstack/models/refresh_token_payload.py +0 -89
- hyperstack/models/region_response.py +0 -95
- hyperstack/models/set_defaults_payload.py +0 -89
- hyperstack/models/single_visibility_user_response.py +0 -91
- hyperstack/models/success_response_model.py +0 -89
- hyperstack/models/token_fields.py +0 -91
- hyperstack/models/update_contract_payload.py +0 -104
- hyperstack/models/update_discounts_payload.py +0 -102
- hyperstack/models/user_transfer_payload.py +0 -89
- hyperstack/models/verify_api_key_response_model.py +0 -95
- hyperstack/models/volume_status_change_fields.py +0 -96
- hyperstack/models/volumes_last_status_change_response.py +0 -99
- hyperstack/models/warning_mail_log_fields.py +0 -99
- hyperstack/models/warning_mail_log_response.py +0 -101
- hyperstack-0.1.23.dist-info/RECORD +0 -401
- {hyperstack-0.1.23.dist-info → hyperstack-1.41.0a0.dist-info}/top_level.txt +0 -0
|
@@ -17,19 +17,30 @@ import pprint
|
|
|
17
17
|
import re # noqa: F401
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
|
-
from pydantic import BaseModel, ConfigDict, StrictStr
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
-
from
|
|
22
|
+
from typing_extensions import Annotated
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
26
|
-
class
|
|
26
|
+
class CreateClusterNodeFields(BaseModel):
|
|
27
27
|
"""
|
|
28
|
-
|
|
28
|
+
CreateClusterNodeFields
|
|
29
29
|
""" # noqa: E501
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
count: Optional[Annotated[int, Field(strict=True, ge=1)]] = None
|
|
31
|
+
node_group: Optional[StrictStr] = None
|
|
32
|
+
role: Optional[StrictStr] = None
|
|
33
|
+
__properties: ClassVar[List[str]] = ["count", "node_group", "role"]
|
|
34
|
+
|
|
35
|
+
@field_validator('role')
|
|
36
|
+
def role_validate_enum(cls, value):
|
|
37
|
+
"""Validates the enum"""
|
|
38
|
+
if value is None:
|
|
39
|
+
return value
|
|
40
|
+
|
|
41
|
+
if value not in set(['worker', 'master']):
|
|
42
|
+
raise ValueError("must be one of enum values ('worker', 'master')")
|
|
43
|
+
return value
|
|
33
44
|
|
|
34
45
|
model_config = ConfigDict(
|
|
35
46
|
populate_by_name=True,
|
|
@@ -49,7 +60,7 @@ class FutureNodeResponseModel(BaseModel):
|
|
|
49
60
|
|
|
50
61
|
@classmethod
|
|
51
62
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
52
|
-
"""Create an instance of
|
|
63
|
+
"""Create an instance of CreateClusterNodeFields from a JSON string"""
|
|
53
64
|
return cls.from_dict(json.loads(json_str))
|
|
54
65
|
|
|
55
66
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -70,18 +81,11 @@ class FutureNodeResponseModel(BaseModel):
|
|
|
70
81
|
exclude=excluded_fields,
|
|
71
82
|
exclude_none=True,
|
|
72
83
|
)
|
|
73
|
-
# override the default output from pydantic by calling `to_dict()` of each item in nodes (list)
|
|
74
|
-
_items = []
|
|
75
|
-
if self.nodes:
|
|
76
|
-
for _item_nodes in self.nodes:
|
|
77
|
-
if _item_nodes:
|
|
78
|
-
_items.append(_item_nodes.to_dict())
|
|
79
|
-
_dict['nodes'] = _items
|
|
80
84
|
return _dict
|
|
81
85
|
|
|
82
86
|
@classmethod
|
|
83
87
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
84
|
-
"""Create an instance of
|
|
88
|
+
"""Create an instance of CreateClusterNodeFields from a dict"""
|
|
85
89
|
if obj is None:
|
|
86
90
|
return None
|
|
87
91
|
|
|
@@ -89,8 +93,9 @@ class FutureNodeResponseModel(BaseModel):
|
|
|
89
93
|
return cls.model_validate(obj)
|
|
90
94
|
|
|
91
95
|
_obj = cls.model_validate({
|
|
92
|
-
"
|
|
93
|
-
"
|
|
96
|
+
"count": obj.get("count"),
|
|
97
|
+
"node_group": obj.get("node_group"),
|
|
98
|
+
"role": obj.get("role")
|
|
94
99
|
})
|
|
95
100
|
return _obj
|
|
96
101
|
|
|
@@ -19,17 +19,18 @@ import json
|
|
|
19
19
|
|
|
20
20
|
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from typing_extensions import Annotated
|
|
22
23
|
from typing import Optional, Set
|
|
23
24
|
from typing_extensions import Self
|
|
24
25
|
|
|
25
|
-
class
|
|
26
|
+
class CreateClusterNodeGroupPayload(BaseModel):
|
|
26
27
|
"""
|
|
27
|
-
|
|
28
|
+
CreateClusterNodeGroupPayload
|
|
28
29
|
""" # noqa: E501
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
__properties: ClassVar[List[str]] = ["
|
|
30
|
+
count: Optional[Annotated[int, Field(strict=True, ge=1)]] = None
|
|
31
|
+
flavor_name: StrictStr
|
|
32
|
+
name: Annotated[str, Field(strict=True, max_length=20)]
|
|
33
|
+
__properties: ClassVar[List[str]] = ["count", "flavor_name", "name"]
|
|
33
34
|
|
|
34
35
|
model_config = ConfigDict(
|
|
35
36
|
populate_by_name=True,
|
|
@@ -49,7 +50,7 @@ class UpdateGPU(BaseModel):
|
|
|
49
50
|
|
|
50
51
|
@classmethod
|
|
51
52
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
52
|
-
"""Create an instance of
|
|
53
|
+
"""Create an instance of CreateClusterNodeGroupPayload from a JSON string"""
|
|
53
54
|
return cls.from_dict(json.loads(json_str))
|
|
54
55
|
|
|
55
56
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -74,7 +75,7 @@ class UpdateGPU(BaseModel):
|
|
|
74
75
|
|
|
75
76
|
@classmethod
|
|
76
77
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
77
|
-
"""Create an instance of
|
|
78
|
+
"""Create an instance of CreateClusterNodeGroupPayload from a dict"""
|
|
78
79
|
if obj is None:
|
|
79
80
|
return None
|
|
80
81
|
|
|
@@ -82,9 +83,9 @@ class UpdateGPU(BaseModel):
|
|
|
82
83
|
return cls.model_validate(obj)
|
|
83
84
|
|
|
84
85
|
_obj = cls.model_validate({
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
86
|
+
"count": obj.get("count"),
|
|
87
|
+
"flavor_name": obj.get("flavor_name"),
|
|
88
|
+
"name": obj.get("name")
|
|
88
89
|
})
|
|
89
90
|
return _obj
|
|
90
91
|
|
|
@@ -17,8 +17,10 @@ import pprint
|
|
|
17
17
|
import re # noqa: F401
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
|
-
from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
|
|
21
|
-
from typing import Any, ClassVar, Dict, List
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from typing_extensions import Annotated
|
|
23
|
+
from ..models.create_cluster_node_group_payload import CreateClusterNodeGroupPayload
|
|
22
24
|
from typing import Optional, Set
|
|
23
25
|
from typing_extensions import Self
|
|
24
26
|
|
|
@@ -26,15 +28,27 @@ class CreateClusterPayload(BaseModel):
|
|
|
26
28
|
"""
|
|
27
29
|
CreateClusterPayload
|
|
28
30
|
""" # noqa: E501
|
|
31
|
+
deployment_mode: Optional[StrictStr] = 'full'
|
|
29
32
|
environment_name: StrictStr
|
|
30
|
-
image_name: StrictStr
|
|
31
33
|
keypair_name: StrictStr
|
|
32
34
|
kubernetes_version: StrictStr
|
|
35
|
+
master_count: Optional[Annotated[int, Field(le=3, strict=True, ge=2)]] = None
|
|
33
36
|
master_flavor_name: StrictStr
|
|
34
37
|
name: StrictStr
|
|
35
|
-
node_count: StrictInt
|
|
36
|
-
node_flavor_name: StrictStr
|
|
37
|
-
|
|
38
|
+
node_count: Optional[StrictInt] = None
|
|
39
|
+
node_flavor_name: Optional[StrictStr] = None
|
|
40
|
+
node_groups: Optional[List[CreateClusterNodeGroupPayload]] = None
|
|
41
|
+
__properties: ClassVar[List[str]] = ["deployment_mode", "environment_name", "keypair_name", "kubernetes_version", "master_count", "master_flavor_name", "name", "node_count", "node_flavor_name", "node_groups"]
|
|
42
|
+
|
|
43
|
+
@field_validator('deployment_mode')
|
|
44
|
+
def deployment_mode_validate_enum(cls, value):
|
|
45
|
+
"""Validates the enum"""
|
|
46
|
+
if value is None:
|
|
47
|
+
return value
|
|
48
|
+
|
|
49
|
+
if value not in set(['full', 'standard']):
|
|
50
|
+
raise ValueError("must be one of enum values ('full', 'standard')")
|
|
51
|
+
return value
|
|
38
52
|
|
|
39
53
|
model_config = ConfigDict(
|
|
40
54
|
populate_by_name=True,
|
|
@@ -75,6 +89,13 @@ class CreateClusterPayload(BaseModel):
|
|
|
75
89
|
exclude=excluded_fields,
|
|
76
90
|
exclude_none=True,
|
|
77
91
|
)
|
|
92
|
+
# override the default output from pydantic by calling `to_dict()` of each item in node_groups (list)
|
|
93
|
+
_items = []
|
|
94
|
+
if self.node_groups:
|
|
95
|
+
for _item_node_groups in self.node_groups:
|
|
96
|
+
if _item_node_groups:
|
|
97
|
+
_items.append(_item_node_groups.to_dict())
|
|
98
|
+
_dict['node_groups'] = _items
|
|
78
99
|
return _dict
|
|
79
100
|
|
|
80
101
|
@classmethod
|
|
@@ -87,14 +108,16 @@ class CreateClusterPayload(BaseModel):
|
|
|
87
108
|
return cls.model_validate(obj)
|
|
88
109
|
|
|
89
110
|
_obj = cls.model_validate({
|
|
111
|
+
"deployment_mode": obj.get("deployment_mode") if obj.get("deployment_mode") is not None else 'full',
|
|
90
112
|
"environment_name": obj.get("environment_name"),
|
|
91
|
-
"image_name": obj.get("image_name"),
|
|
92
113
|
"keypair_name": obj.get("keypair_name"),
|
|
93
114
|
"kubernetes_version": obj.get("kubernetes_version"),
|
|
115
|
+
"master_count": obj.get("master_count"),
|
|
94
116
|
"master_flavor_name": obj.get("master_flavor_name"),
|
|
95
117
|
"name": obj.get("name"),
|
|
96
118
|
"node_count": obj.get("node_count"),
|
|
97
|
-
"node_flavor_name": obj.get("node_flavor_name")
|
|
119
|
+
"node_flavor_name": obj.get("node_flavor_name"),
|
|
120
|
+
"node_groups": [CreateClusterNodeGroupPayload.from_dict(_item) for _item in obj["node_groups"]] if obj.get("node_groups") is not None else None
|
|
98
121
|
})
|
|
99
122
|
return _obj
|
|
100
123
|
|
|
@@ -28,7 +28,7 @@ class CreateEnvironment(BaseModel):
|
|
|
28
28
|
CreateEnvironment
|
|
29
29
|
""" # noqa: E501
|
|
30
30
|
name: Annotated[str, Field(strict=True, max_length=50)] = Field(description="The name of the environment being created.")
|
|
31
|
-
region: StrictStr = Field(description="The geographic location of the data center where the environment is being created. To learn more about regions, [**click here**](
|
|
31
|
+
region: StrictStr = Field(description="The geographic location of the data center where the environment is being created. To learn more about regions, [**click here**]({Config.INFRAHUB_DOCS_BASE}/docs/features/regions).")
|
|
32
32
|
__properties: ClassVar[List[str]] = ["name", "region"]
|
|
33
33
|
|
|
34
34
|
model_config = ConfigDict(
|
|
@@ -30,22 +30,23 @@ class CreateInstancesPayload(BaseModel):
|
|
|
30
30
|
"""
|
|
31
31
|
CreateInstancesPayload
|
|
32
32
|
""" # noqa: E501
|
|
33
|
-
assign_floating_ip: Optional[StrictBool] = Field(default=None, description="When this field is set to `true`, it attaches a [public IP address](https://
|
|
34
|
-
callback_url: Optional[Annotated[str, Field(strict=True, max_length=250)]] = Field(default=None, description="An optional URL where actions performed on the virtual machine will be sent. For additional information on event callbacks, [**click here**](https://
|
|
33
|
+
assign_floating_ip: Optional[StrictBool] = Field(default=None, description="When this field is set to `true`, it attaches a [public IP address](https://docs...cloud/docs/api-reference/core-resources/virtual-machines/floating-ip/) to the virtual machine, enabling internet accessibility.")
|
|
34
|
+
callback_url: Optional[Annotated[str, Field(strict=True, max_length=250)]] = Field(default=None, description="An optional URL where actions performed on the virtual machine will be sent. For additional information on event callbacks, [**click here**](https://docs...cloud/docs/api-reference/core-resources/virtual-machines/callbacks-vms/).")
|
|
35
35
|
count: StrictInt = Field(description="The number of virtual machines to be created.")
|
|
36
36
|
create_bootable_volume: Optional[StrictBool] = Field(default=None, description="Indicates whether to create a bootable volume for the virtual machine. When set to `true`, a bootable volume will be created; the default value is `false`.")
|
|
37
|
-
|
|
37
|
+
enable_port_randomization: Optional[StrictBool] = Field(default=True, description="Indicates whether to enable port randomization.This setting is only effective if 'assign_floating_ip' is true. Defaults to true.")
|
|
38
|
+
environment_name: StrictStr = Field(description="The name of the [environment](https://docs...cloud/docs/api-reference/core-resources/environments/) in which the virtual machine is to be created.")
|
|
38
39
|
flavor: Optional[FlavorObjectFields] = None
|
|
39
|
-
flavor_name: StrictStr = Field(description="The name of the GPU hardware configuration ([flavor](https://
|
|
40
|
-
image_name: Optional[StrictStr] = Field(default=None, description="The [operating system (OS) image](https://
|
|
41
|
-
key_name: StrictStr = Field(description="The name of the existing SSH key pair to be used for secure access to the virtual machine. For additional information on SSH key pairs, [**click here**](https://
|
|
40
|
+
flavor_name: StrictStr = Field(description="The name of the GPU hardware configuration ([flavor](https://docs...cloud/docs/hardware/flavors)) for the virtual machines being created.")
|
|
41
|
+
image_name: Optional[StrictStr] = Field(default=None, description="The [operating system (OS) image](https://docs...cloud/docs/virtual-machines/images) name designated for installation on the virtual machine.It also accepts custom, private images, created from [existing snapshots](https://docs.hyperstack.cloud/docs/virtual-machines/custom-images).")
|
|
42
|
+
key_name: StrictStr = Field(description="The name of the existing SSH key pair to be used for secure access to the virtual machine. For additional information on SSH key pairs, [**click here**](https://docs...cloud/docs/api-reference/core-resources/keypairs/).")
|
|
42
43
|
labels: Optional[List[StrictStr]] = None
|
|
43
44
|
name: Annotated[str, Field(strict=True, max_length=50)] = Field(description="The name of the virtual machine being created.")
|
|
44
45
|
profile: Optional[ProfileObjectFields] = None
|
|
45
46
|
security_rules: Optional[List[CreateSecurityRulePayload]] = None
|
|
46
|
-
user_data: Optional[StrictStr] = Field(default=None, description="Optional initialization configuration commands to manage the configuration of a virtual machine at launch using cloud-init scripts. For more information about custom VM configuration using cloud-init, [**click here**](https://
|
|
47
|
+
user_data: Optional[StrictStr] = Field(default=None, description="Optional initialization configuration commands to manage the configuration of a virtual machine at launch using cloud-init scripts. For more information about custom VM configuration using cloud-init, [**click here**](https://docs...cloud/docs/virtual-machines/initialization-configuration).")
|
|
47
48
|
volume_name: Optional[StrictStr] = Field(default=None, description="The names of the volume(s) to be attached to the virtual machine being created.")
|
|
48
|
-
__properties: ClassVar[List[str]] = ["assign_floating_ip", "callback_url", "count", "create_bootable_volume", "environment_name", "flavor", "flavor_name", "image_name", "key_name", "labels", "name", "profile", "security_rules", "user_data", "volume_name"]
|
|
49
|
+
__properties: ClassVar[List[str]] = ["assign_floating_ip", "callback_url", "count", "create_bootable_volume", "enable_port_randomization", "environment_name", "flavor", "flavor_name", "image_name", "key_name", "labels", "name", "profile", "security_rules", "user_data", "volume_name"]
|
|
49
50
|
|
|
50
51
|
model_config = ConfigDict(
|
|
51
52
|
populate_by_name=True,
|
|
@@ -115,6 +116,7 @@ class CreateInstancesPayload(BaseModel):
|
|
|
115
116
|
"callback_url": obj.get("callback_url"),
|
|
116
117
|
"count": obj.get("count"),
|
|
117
118
|
"create_bootable_volume": obj.get("create_bootable_volume"),
|
|
119
|
+
"enable_port_randomization": obj.get("enable_port_randomization") if obj.get("enable_port_randomization") is not None else True,
|
|
118
120
|
"environment_name": obj.get("environment_name"),
|
|
119
121
|
"flavor": FlavorObjectFields.from_dict(obj["flavor"]) if obj.get("flavor") is not None else None,
|
|
120
122
|
"flavor_name": obj.get("flavor_name"),
|
|
@@ -27,7 +27,7 @@ class CreateProfilePayload(BaseModel):
|
|
|
27
27
|
"""
|
|
28
28
|
CreateProfilePayload
|
|
29
29
|
""" # noqa: E501
|
|
30
|
-
data: Dict[str, StrictStr] = Field(description="The data object
|
|
30
|
+
data: Dict[str, StrictStr] = Field(description="The data object containing the configuration details of the virtual machine profile being created.")
|
|
31
31
|
description: Optional[Annotated[str, Field(strict=True, max_length=150)]] = Field(default=None, description="The optional description for the profile being created.")
|
|
32
32
|
name: Annotated[str, Field(strict=True, max_length=50)] = Field(description="The name of the profile being created.")
|
|
33
33
|
__properties: ClassVar[List[str]] = ["data", "description", "name"]
|
|
@@ -17,7 +17,7 @@ import pprint
|
|
|
17
17
|
import re # noqa: F401
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
|
-
from pydantic import BaseModel, ConfigDict, Field,
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
22
|
from typing import Optional, Set
|
|
23
23
|
from typing_extensions import Self
|
|
@@ -27,10 +27,9 @@ class CreateSnapshotPayload(BaseModel):
|
|
|
27
27
|
CreateSnapshotPayload
|
|
28
28
|
""" # noqa: E501
|
|
29
29
|
description: StrictStr = Field(description="description")
|
|
30
|
-
is_image: StrictBool = Field(description="Indicates if the snapshot is an image")
|
|
31
30
|
labels: Optional[List[StrictStr]] = Field(default=None, description="Labels associated with snapshot")
|
|
32
31
|
name: StrictStr = Field(description="Snapshot name")
|
|
33
|
-
__properties: ClassVar[List[str]] = ["description", "
|
|
32
|
+
__properties: ClassVar[List[str]] = ["description", "labels", "name"]
|
|
34
33
|
|
|
35
34
|
model_config = ConfigDict(
|
|
36
35
|
populate_by_name=True,
|
|
@@ -84,7 +83,6 @@ class CreateSnapshotPayload(BaseModel):
|
|
|
84
83
|
|
|
85
84
|
_obj = cls.model_validate({
|
|
86
85
|
"description": obj.get("description"),
|
|
87
|
-
"is_image": obj.get("is_image"),
|
|
88
86
|
"labels": obj.get("labels"),
|
|
89
87
|
"name": obj.get("name")
|
|
90
88
|
})
|
|
@@ -29,7 +29,7 @@ class CreateVolumePayload(BaseModel):
|
|
|
29
29
|
""" # noqa: E501
|
|
30
30
|
callback_url: Optional[Annotated[str, Field(strict=True, max_length=250)]] = Field(default=None, description="A URL that can be attached to the volume you are creating. This `callback_url` will post any action events that occur to your volume to the provided URL.")
|
|
31
31
|
description: Optional[StrictStr] = Field(default=None, description="A brief description or comment about the volume.")
|
|
32
|
-
environment_name: StrictStr = Field(description="The name of the [environment](https://
|
|
32
|
+
environment_name: StrictStr = Field(description="The name of the [environment](https://docs...cloud/docs/api-reference/core-resources/environments/) within which the volume is being created.")
|
|
33
33
|
image_id: Optional[StrictInt] = Field(default=None, description="The ID of the operating system image that will be associated with the volume. By providing an `image_id` in the create volume request, you will create a bootable volume.")
|
|
34
34
|
name: Annotated[str, Field(strict=True, max_length=50)] = Field(description="The name of the volume being created.")
|
|
35
35
|
size: StrictInt = Field(description="The size of the volume in GB. 1048576GB storage capacity per volume.")
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Infrahub-API
|
|
5
|
+
|
|
6
|
+
Leverage the Infrahub API and Hyperstack platform to easily create, manage, and scale powerful GPU virtual machines and their associated resources. Access this SDK to automate the deployment of your workloads and streamline your infrastructure management. To contribute, please raise an issue with a bug report, feature request, feedback, or general inquiry.
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from ..models.billing_history_data_synthesis_details import BillingHistoryDataSynthesisDetails
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class DataSynthesisBillingHistoryDetailsResponseSchema(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
DataSynthesisBillingHistoryDetailsResponseSchema
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
billing_history_data_synthesis_details: Optional[BillingHistoryDataSynthesisDetails] = None
|
|
31
|
+
message: Optional[StrictStr] = None
|
|
32
|
+
status: Optional[StrictBool] = None
|
|
33
|
+
__properties: ClassVar[List[str]] = ["billing_history_data_synthesis_details", "message", "status"]
|
|
34
|
+
|
|
35
|
+
model_config = ConfigDict(
|
|
36
|
+
populate_by_name=True,
|
|
37
|
+
validate_assignment=True,
|
|
38
|
+
protected_namespaces=(),
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def to_str(self) -> str:
|
|
43
|
+
"""Returns the string representation of the model using alias"""
|
|
44
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
45
|
+
|
|
46
|
+
def to_json(self) -> str:
|
|
47
|
+
"""Returns the JSON representation of the model using alias"""
|
|
48
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
49
|
+
return json.dumps(self.to_dict())
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
53
|
+
"""Create an instance of DataSynthesisBillingHistoryDetailsResponseSchema from a JSON string"""
|
|
54
|
+
return cls.from_dict(json.loads(json_str))
|
|
55
|
+
|
|
56
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
57
|
+
"""Return the dictionary representation of the model using alias.
|
|
58
|
+
|
|
59
|
+
This has the following differences from calling pydantic's
|
|
60
|
+
`self.model_dump(by_alias=True)`:
|
|
61
|
+
|
|
62
|
+
* `None` is only added to the output dict for nullable fields that
|
|
63
|
+
were set at model initialization. Other fields with value `None`
|
|
64
|
+
are ignored.
|
|
65
|
+
"""
|
|
66
|
+
excluded_fields: Set[str] = set([
|
|
67
|
+
])
|
|
68
|
+
|
|
69
|
+
_dict = self.model_dump(
|
|
70
|
+
by_alias=True,
|
|
71
|
+
exclude=excluded_fields,
|
|
72
|
+
exclude_none=True,
|
|
73
|
+
)
|
|
74
|
+
# override the default output from pydantic by calling `to_dict()` of billing_history_data_synthesis_details
|
|
75
|
+
if self.billing_history_data_synthesis_details:
|
|
76
|
+
_dict['billing_history_data_synthesis_details'] = self.billing_history_data_synthesis_details.to_dict()
|
|
77
|
+
return _dict
|
|
78
|
+
|
|
79
|
+
@classmethod
|
|
80
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
81
|
+
"""Create an instance of DataSynthesisBillingHistoryDetailsResponseSchema from a dict"""
|
|
82
|
+
if obj is None:
|
|
83
|
+
return None
|
|
84
|
+
|
|
85
|
+
if not isinstance(obj, dict):
|
|
86
|
+
return cls.model_validate(obj)
|
|
87
|
+
|
|
88
|
+
_obj = cls.model_validate({
|
|
89
|
+
"billing_history_data_synthesis_details": BillingHistoryDataSynthesisDetails.from_dict(obj["billing_history_data_synthesis_details"]) if obj.get("billing_history_data_synthesis_details") is not None else None,
|
|
90
|
+
"message": obj.get("message"),
|
|
91
|
+
"status": obj.get("status")
|
|
92
|
+
})
|
|
93
|
+
return _obj
|
|
94
|
+
|
|
95
|
+
|
|
@@ -23,9 +23,9 @@ from typing import Any, ClassVar, Dict, List, Optional
|
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
26
|
-
class
|
|
26
|
+
class DeploymentFieldsForStartDeployments(BaseModel):
|
|
27
27
|
"""
|
|
28
|
-
|
|
28
|
+
DeploymentFieldsForStartDeployments
|
|
29
29
|
""" # noqa: E501
|
|
30
30
|
created_at: Optional[datetime] = None
|
|
31
31
|
description: Optional[StrictStr] = None
|
|
@@ -54,7 +54,7 @@ class DeploymentFieldsforstartdeployments(BaseModel):
|
|
|
54
54
|
|
|
55
55
|
@classmethod
|
|
56
56
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
57
|
-
"""Create an instance of
|
|
57
|
+
"""Create an instance of DeploymentFieldsForStartDeployments from a JSON string"""
|
|
58
58
|
return cls.from_dict(json.loads(json_str))
|
|
59
59
|
|
|
60
60
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -79,7 +79,7 @@ class DeploymentFieldsforstartdeployments(BaseModel):
|
|
|
79
79
|
|
|
80
80
|
@classmethod
|
|
81
81
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
82
|
-
"""Create an instance of
|
|
82
|
+
"""Create an instance of DeploymentFieldsForStartDeployments from a dict"""
|
|
83
83
|
if obj is None:
|
|
84
84
|
return None
|
|
85
85
|
|
hyperstack/models/{editlabelofanexisting_vm_payload.py → edit_label_of_an_existing_vm_payload.py}
RENAMED
|
@@ -22,9 +22,9 @@ from typing import Any, ClassVar, Dict, List, Optional
|
|
|
22
22
|
from typing import Optional, Set
|
|
23
23
|
from typing_extensions import Self
|
|
24
24
|
|
|
25
|
-
class
|
|
25
|
+
class EditLabelOfAnExistingVMPayload(BaseModel):
|
|
26
26
|
"""
|
|
27
|
-
|
|
27
|
+
EditLabelOfAnExistingVMPayload
|
|
28
28
|
""" # noqa: E501
|
|
29
29
|
labels: Optional[List[StrictStr]] = Field(default=None, description="Multiple labels can be added by separating with spaces")
|
|
30
30
|
__properties: ClassVar[List[str]] = ["labels"]
|
|
@@ -47,7 +47,7 @@ class EditlabelofanexistingVMPayload(BaseModel):
|
|
|
47
47
|
|
|
48
48
|
@classmethod
|
|
49
49
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
50
|
-
"""Create an instance of
|
|
50
|
+
"""Create an instance of EditLabelOfAnExistingVMPayload from a JSON string"""
|
|
51
51
|
return cls.from_dict(json.loads(json_str))
|
|
52
52
|
|
|
53
53
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -72,7 +72,7 @@ class EditlabelofanexistingVMPayload(BaseModel):
|
|
|
72
72
|
|
|
73
73
|
@classmethod
|
|
74
74
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
75
|
-
"""Create an instance of
|
|
75
|
+
"""Create an instance of EditLabelOfAnExistingVMPayload from a dict"""
|
|
76
76
|
if obj is None:
|
|
77
77
|
return None
|
|
78
78
|
|
|
@@ -17,7 +17,7 @@ import pprint
|
|
|
17
17
|
import re # noqa: F401
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
|
-
from pydantic import BaseModel, ConfigDict, StrictBool
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr, field_validator
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
22
|
from typing import Optional, Set
|
|
23
23
|
from typing_extensions import Self
|
|
@@ -26,8 +26,19 @@ class EnvironmentFeatures(BaseModel):
|
|
|
26
26
|
"""
|
|
27
27
|
EnvironmentFeatures
|
|
28
28
|
""" # noqa: E501
|
|
29
|
+
green_status: Optional[StrictStr] = None
|
|
29
30
|
network_optimised: Optional[StrictBool] = None
|
|
30
|
-
__properties: ClassVar[List[str]] = ["network_optimised"]
|
|
31
|
+
__properties: ClassVar[List[str]] = ["green_status", "network_optimised"]
|
|
32
|
+
|
|
33
|
+
@field_validator('green_status')
|
|
34
|
+
def green_status_validate_enum(cls, value):
|
|
35
|
+
"""Validates the enum"""
|
|
36
|
+
if value is None:
|
|
37
|
+
return value
|
|
38
|
+
|
|
39
|
+
if value not in set(['GREEN', 'PARTIALLY_GREEN', 'NOT_GREEN']):
|
|
40
|
+
raise ValueError("must be one of enum values ('GREEN', 'PARTIALLY_GREEN', 'NOT_GREEN')")
|
|
41
|
+
return value
|
|
31
42
|
|
|
32
43
|
model_config = ConfigDict(
|
|
33
44
|
populate_by_name=True,
|
|
@@ -80,6 +91,7 @@ class EnvironmentFeatures(BaseModel):
|
|
|
80
91
|
return cls.model_validate(obj)
|
|
81
92
|
|
|
82
93
|
_obj = cls.model_validate({
|
|
94
|
+
"green_status": obj.get("green_status"),
|
|
83
95
|
"network_optimised": obj.get("network_optimised")
|
|
84
96
|
})
|
|
85
97
|
return _obj
|
|
@@ -17,20 +17,19 @@ import pprint
|
|
|
17
17
|
import re # noqa: F401
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
|
-
from pydantic import BaseModel, ConfigDict,
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, StrictStr
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
22
|
from typing import Optional, Set
|
|
23
23
|
from typing_extensions import Self
|
|
24
24
|
|
|
25
|
-
class
|
|
25
|
+
class EnvironmentFieldsForVolume(BaseModel):
|
|
26
26
|
"""
|
|
27
|
-
|
|
27
|
+
EnvironmentFieldsForVolume
|
|
28
28
|
""" # noqa: E501
|
|
29
|
-
|
|
29
|
+
features: Optional[Dict[str, Any]] = None
|
|
30
30
|
name: Optional[StrictStr] = None
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
__properties: ClassVar[List[str]] = ["in_use", "name", "total", "type"]
|
|
31
|
+
region: Optional[StrictStr] = None
|
|
32
|
+
__properties: ClassVar[List[str]] = ["features", "name", "region"]
|
|
34
33
|
|
|
35
34
|
model_config = ConfigDict(
|
|
36
35
|
populate_by_name=True,
|
|
@@ -50,7 +49,7 @@ class NodeStocksPayload(BaseModel):
|
|
|
50
49
|
|
|
51
50
|
@classmethod
|
|
52
51
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
53
|
-
"""Create an instance of
|
|
52
|
+
"""Create an instance of EnvironmentFieldsForVolume from a JSON string"""
|
|
54
53
|
return cls.from_dict(json.loads(json_str))
|
|
55
54
|
|
|
56
55
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -75,7 +74,7 @@ class NodeStocksPayload(BaseModel):
|
|
|
75
74
|
|
|
76
75
|
@classmethod
|
|
77
76
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
78
|
-
"""Create an instance of
|
|
77
|
+
"""Create an instance of EnvironmentFieldsForVolume from a dict"""
|
|
79
78
|
if obj is None:
|
|
80
79
|
return None
|
|
81
80
|
|
|
@@ -83,10 +82,9 @@ class NodeStocksPayload(BaseModel):
|
|
|
83
82
|
return cls.model_validate(obj)
|
|
84
83
|
|
|
85
84
|
_obj = cls.model_validate({
|
|
86
|
-
"
|
|
85
|
+
"features": obj.get("features"),
|
|
87
86
|
"name": obj.get("name"),
|
|
88
|
-
"
|
|
89
|
-
"type": obj.get("type")
|
|
87
|
+
"region": obj.get("region")
|
|
90
88
|
})
|
|
91
89
|
return _obj
|
|
92
90
|
|
|
@@ -33,6 +33,7 @@ class FlavorFields(BaseModel):
|
|
|
33
33
|
disk: Optional[StrictInt] = None
|
|
34
34
|
display_name: Optional[StrictStr] = None
|
|
35
35
|
ephemeral: Optional[StrictInt] = None
|
|
36
|
+
features: Optional[Dict[str, Any]] = None
|
|
36
37
|
gpu: Optional[StrictStr] = None
|
|
37
38
|
gpu_count: Optional[StrictInt] = None
|
|
38
39
|
id: Optional[StrictInt] = None
|
|
@@ -41,7 +42,7 @@ class FlavorFields(BaseModel):
|
|
|
41
42
|
ram: Optional[Union[StrictFloat, StrictInt]] = None
|
|
42
43
|
region_name: Optional[StrictStr] = None
|
|
43
44
|
stock_available: Optional[StrictBool] = None
|
|
44
|
-
__properties: ClassVar[List[str]] = ["cpu", "created_at", "disk", "display_name", "ephemeral", "gpu", "gpu_count", "id", "labels", "name", "ram", "region_name", "stock_available"]
|
|
45
|
+
__properties: ClassVar[List[str]] = ["cpu", "created_at", "disk", "display_name", "ephemeral", "features", "gpu", "gpu_count", "id", "labels", "name", "ram", "region_name", "stock_available"]
|
|
45
46
|
|
|
46
47
|
model_config = ConfigDict(
|
|
47
48
|
populate_by_name=True,
|
|
@@ -106,6 +107,7 @@ class FlavorFields(BaseModel):
|
|
|
106
107
|
"disk": obj.get("disk"),
|
|
107
108
|
"display_name": obj.get("display_name"),
|
|
108
109
|
"ephemeral": obj.get("ephemeral"),
|
|
110
|
+
"features": obj.get("features"),
|
|
109
111
|
"gpu": obj.get("gpu"),
|
|
110
112
|
"gpu_count": obj.get("gpu_count"),
|
|
111
113
|
"id": obj.get("id"),
|
|
@@ -22,13 +22,13 @@ from typing import Any, ClassVar, Dict, List, Optional
|
|
|
22
22
|
from typing import Optional, Set
|
|
23
23
|
from typing_extensions import Self
|
|
24
24
|
|
|
25
|
-
class
|
|
25
|
+
class FlavorLabelFields(BaseModel):
|
|
26
26
|
"""
|
|
27
|
-
|
|
27
|
+
FlavorLabelFields
|
|
28
28
|
""" # noqa: E501
|
|
29
29
|
id: Optional[StrictInt] = None
|
|
30
|
-
|
|
31
|
-
__properties: ClassVar[List[str]] = ["id", "
|
|
30
|
+
label: Optional[StrictStr] = None
|
|
31
|
+
__properties: ClassVar[List[str]] = ["id", "label"]
|
|
32
32
|
|
|
33
33
|
model_config = ConfigDict(
|
|
34
34
|
populate_by_name=True,
|
|
@@ -48,7 +48,7 @@ class CustomerFields(BaseModel):
|
|
|
48
48
|
|
|
49
49
|
@classmethod
|
|
50
50
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
51
|
-
"""Create an instance of
|
|
51
|
+
"""Create an instance of FlavorLabelFields from a JSON string"""
|
|
52
52
|
return cls.from_dict(json.loads(json_str))
|
|
53
53
|
|
|
54
54
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -73,7 +73,7 @@ class CustomerFields(BaseModel):
|
|
|
73
73
|
|
|
74
74
|
@classmethod
|
|
75
75
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
76
|
-
"""Create an instance of
|
|
76
|
+
"""Create an instance of FlavorLabelFields from a dict"""
|
|
77
77
|
if obj is None:
|
|
78
78
|
return None
|
|
79
79
|
|
|
@@ -82,7 +82,7 @@ class CustomerFields(BaseModel):
|
|
|
82
82
|
|
|
83
83
|
_obj = cls.model_validate({
|
|
84
84
|
"id": obj.get("id"),
|
|
85
|
-
"
|
|
85
|
+
"label": obj.get("label")
|
|
86
86
|
})
|
|
87
87
|
return _obj
|
|
88
88
|
|