hyperstack 1.25.0a0__py3-none-any.whl → 1.41.2a0__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 +80 -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 +2816 -199
- 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 +1 -11
- hyperstack/models/__init__.py +77 -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 +7 -7
- 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 +8 -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/{verify_api_key_response_model.py → manual_reconciliation_model.py} +13 -13
- 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-1.25.0a0.dist-info → hyperstack-1.41.2a0.dist-info}/METADATA +2 -2
- hyperstack-1.41.2a0.dist-info/RECORD +350 -0
- {hyperstack-1.25.0a0.dist-info → hyperstack-1.41.2a0.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/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-1.25.0a0.dist-info/RECORD +0 -401
- {hyperstack-1.25.0a0.dist-info → hyperstack-1.41.2a0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
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
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from typing import Optional, Set
|
|
23
|
+
from typing_extensions import Self
|
|
24
|
+
|
|
25
|
+
class UpdateVolumeAttachmentPayload(BaseModel):
|
|
26
|
+
"""
|
|
27
|
+
UpdateVolumeAttachmentPayload
|
|
28
|
+
""" # noqa: E501
|
|
29
|
+
protected: Optional[StrictBool] = None
|
|
30
|
+
__properties: ClassVar[List[str]] = ["protected"]
|
|
31
|
+
|
|
32
|
+
model_config = ConfigDict(
|
|
33
|
+
populate_by_name=True,
|
|
34
|
+
validate_assignment=True,
|
|
35
|
+
protected_namespaces=(),
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def to_str(self) -> str:
|
|
40
|
+
"""Returns the string representation of the model using alias"""
|
|
41
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
42
|
+
|
|
43
|
+
def to_json(self) -> str:
|
|
44
|
+
"""Returns the JSON representation of the model using alias"""
|
|
45
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
46
|
+
return json.dumps(self.to_dict())
|
|
47
|
+
|
|
48
|
+
@classmethod
|
|
49
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
50
|
+
"""Create an instance of UpdateVolumeAttachmentPayload from a JSON string"""
|
|
51
|
+
return cls.from_dict(json.loads(json_str))
|
|
52
|
+
|
|
53
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
54
|
+
"""Return the dictionary representation of the model using alias.
|
|
55
|
+
|
|
56
|
+
This has the following differences from calling pydantic's
|
|
57
|
+
`self.model_dump(by_alias=True)`:
|
|
58
|
+
|
|
59
|
+
* `None` is only added to the output dict for nullable fields that
|
|
60
|
+
were set at model initialization. Other fields with value `None`
|
|
61
|
+
are ignored.
|
|
62
|
+
"""
|
|
63
|
+
excluded_fields: Set[str] = set([
|
|
64
|
+
])
|
|
65
|
+
|
|
66
|
+
_dict = self.model_dump(
|
|
67
|
+
by_alias=True,
|
|
68
|
+
exclude=excluded_fields,
|
|
69
|
+
exclude_none=True,
|
|
70
|
+
)
|
|
71
|
+
return _dict
|
|
72
|
+
|
|
73
|
+
@classmethod
|
|
74
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
75
|
+
"""Create an instance of UpdateVolumeAttachmentPayload from a dict"""
|
|
76
|
+
if obj is None:
|
|
77
|
+
return None
|
|
78
|
+
|
|
79
|
+
if not isinstance(obj, dict):
|
|
80
|
+
return cls.model_validate(obj)
|
|
81
|
+
|
|
82
|
+
_obj = cls.model_validate({
|
|
83
|
+
"protected": obj.get("protected")
|
|
84
|
+
})
|
|
85
|
+
return _obj
|
|
86
|
+
|
|
87
|
+
|
|
@@ -22,12 +22,12 @@ from typing import Any, ClassVar, Dict, List
|
|
|
22
22
|
from typing import Optional, Set
|
|
23
23
|
from typing_extensions import Self
|
|
24
24
|
|
|
25
|
-
class
|
|
25
|
+
class UpdateVolumePayload(BaseModel):
|
|
26
26
|
"""
|
|
27
|
-
|
|
27
|
+
UpdateVolumePayload
|
|
28
28
|
""" # noqa: E501
|
|
29
|
-
|
|
30
|
-
__properties: ClassVar[List[str]] = ["
|
|
29
|
+
environment_name: StrictStr = Field(description="The name of the target environment to move the volume to. The target environment must be in the same region as the current environment.")
|
|
30
|
+
__properties: ClassVar[List[str]] = ["environment_name"]
|
|
31
31
|
|
|
32
32
|
model_config = ConfigDict(
|
|
33
33
|
populate_by_name=True,
|
|
@@ -47,7 +47,7 @@ class VerifyApiKeyPayload(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 UpdateVolumePayload 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 VerifyApiKeyPayload(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 UpdateVolumePayload from a dict"""
|
|
76
76
|
if obj is None:
|
|
77
77
|
return None
|
|
78
78
|
|
|
@@ -80,7 +80,7 @@ class VerifyApiKeyPayload(BaseModel):
|
|
|
80
80
|
return cls.model_validate(obj)
|
|
81
81
|
|
|
82
82
|
_obj = cls.model_validate({
|
|
83
|
-
"
|
|
83
|
+
"environment_name": obj.get("environment_name")
|
|
84
84
|
})
|
|
85
85
|
return _obj
|
|
86
86
|
|
|
@@ -17,20 +17,21 @@ import pprint
|
|
|
17
17
|
import re # noqa: F401
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
|
-
from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
-
from ..models.
|
|
22
|
+
from ..models.volume_fields import VolumeFields
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
26
|
-
class
|
|
26
|
+
class UpdateVolumeResponse(BaseModel):
|
|
27
27
|
"""
|
|
28
|
-
|
|
28
|
+
UpdateVolumeResponse
|
|
29
29
|
""" # noqa: E501
|
|
30
30
|
message: Optional[StrictStr] = None
|
|
31
31
|
status: Optional[StrictBool] = None
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
updates: Optional[Dict[str, Any]] = Field(default=None, description="Summary of fields that were updated")
|
|
33
|
+
volume: Optional[VolumeFields] = None
|
|
34
|
+
__properties: ClassVar[List[str]] = ["message", "status", "updates", "volume"]
|
|
34
35
|
|
|
35
36
|
model_config = ConfigDict(
|
|
36
37
|
populate_by_name=True,
|
|
@@ -50,7 +51,7 @@ class StockVisibilityUserListResponse(BaseModel):
|
|
|
50
51
|
|
|
51
52
|
@classmethod
|
|
52
53
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
53
|
-
"""Create an instance of
|
|
54
|
+
"""Create an instance of UpdateVolumeResponse from a JSON string"""
|
|
54
55
|
return cls.from_dict(json.loads(json_str))
|
|
55
56
|
|
|
56
57
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -71,18 +72,14 @@ class StockVisibilityUserListResponse(BaseModel):
|
|
|
71
72
|
exclude=excluded_fields,
|
|
72
73
|
exclude_none=True,
|
|
73
74
|
)
|
|
74
|
-
# override the default output from pydantic by calling `to_dict()` of
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
for _item_users in self.users:
|
|
78
|
-
if _item_users:
|
|
79
|
-
_items.append(_item_users.to_dict())
|
|
80
|
-
_dict['users'] = _items
|
|
75
|
+
# override the default output from pydantic by calling `to_dict()` of volume
|
|
76
|
+
if self.volume:
|
|
77
|
+
_dict['volume'] = self.volume.to_dict()
|
|
81
78
|
return _dict
|
|
82
79
|
|
|
83
80
|
@classmethod
|
|
84
81
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
85
|
-
"""Create an instance of
|
|
82
|
+
"""Create an instance of UpdateVolumeResponse from a dict"""
|
|
86
83
|
if obj is None:
|
|
87
84
|
return None
|
|
88
85
|
|
|
@@ -92,7 +89,8 @@ class StockVisibilityUserListResponse(BaseModel):
|
|
|
92
89
|
_obj = cls.model_validate({
|
|
93
90
|
"message": obj.get("message"),
|
|
94
91
|
"status": obj.get("status"),
|
|
95
|
-
"
|
|
92
|
+
"updates": obj.get("updates"),
|
|
93
|
+
"volume": VolumeFields.from_dict(obj["volume"]) if obj.get("volume") is not None else None
|
|
96
94
|
})
|
|
97
95
|
return _obj
|
|
98
96
|
|
|
@@ -22,13 +22,18 @@ 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 URIs(BaseModel):
|
|
26
26
|
"""
|
|
27
|
-
|
|
27
|
+
URIs
|
|
28
28
|
""" # noqa: E501
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
api_doc: Optional[StrictStr] = None
|
|
30
|
+
api_uri: Optional[StrictStr] = None
|
|
31
|
+
auth: Optional[StrictStr] = None
|
|
32
|
+
console: Optional[StrictStr] = None
|
|
33
|
+
contact_us: Optional[StrictStr] = None
|
|
34
|
+
doc: Optional[StrictStr] = None
|
|
35
|
+
landing_page: Optional[StrictStr] = None
|
|
36
|
+
__properties: ClassVar[List[str]] = ["api_doc", "api_uri", "auth", "console", "contact_us", "doc", "landing_page"]
|
|
32
37
|
|
|
33
38
|
model_config = ConfigDict(
|
|
34
39
|
populate_by_name=True,
|
|
@@ -48,7 +53,7 @@ class AuthRequestLoginFields(BaseModel):
|
|
|
48
53
|
|
|
49
54
|
@classmethod
|
|
50
55
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
51
|
-
"""Create an instance of
|
|
56
|
+
"""Create an instance of URIs from a JSON string"""
|
|
52
57
|
return cls.from_dict(json.loads(json_str))
|
|
53
58
|
|
|
54
59
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -73,7 +78,7 @@ class AuthRequestLoginFields(BaseModel):
|
|
|
73
78
|
|
|
74
79
|
@classmethod
|
|
75
80
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
76
|
-
"""Create an instance of
|
|
81
|
+
"""Create an instance of URIs from a dict"""
|
|
77
82
|
if obj is None:
|
|
78
83
|
return None
|
|
79
84
|
|
|
@@ -81,8 +86,13 @@ class AuthRequestLoginFields(BaseModel):
|
|
|
81
86
|
return cls.model_validate(obj)
|
|
82
87
|
|
|
83
88
|
_obj = cls.model_validate({
|
|
84
|
-
"
|
|
85
|
-
"
|
|
89
|
+
"api_doc": obj.get("api_doc"),
|
|
90
|
+
"api_uri": obj.get("api_uri"),
|
|
91
|
+
"auth": obj.get("auth"),
|
|
92
|
+
"console": obj.get("console"),
|
|
93
|
+
"contact_us": obj.get("contact_us"),
|
|
94
|
+
"doc": obj.get("doc"),
|
|
95
|
+
"landing_page": obj.get("landing_page")
|
|
86
96
|
})
|
|
87
97
|
return _obj
|
|
88
98
|
|
|
@@ -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 UserInfoPostPayload(BaseModel):
|
|
26
26
|
"""
|
|
27
|
-
|
|
27
|
+
UserInfoPostPayload
|
|
28
28
|
""" # noqa: E501
|
|
29
29
|
billing_address1: Optional[StrictStr] = None
|
|
30
30
|
billing_address2: Optional[StrictStr] = None
|
|
@@ -57,7 +57,7 @@ class Userinfopostpayload(BaseModel):
|
|
|
57
57
|
|
|
58
58
|
@classmethod
|
|
59
59
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
60
|
-
"""Create an instance of
|
|
60
|
+
"""Create an instance of UserInfoPostPayload from a JSON string"""
|
|
61
61
|
return cls.from_dict(json.loads(json_str))
|
|
62
62
|
|
|
63
63
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -82,7 +82,7 @@ class Userinfopostpayload(BaseModel):
|
|
|
82
82
|
|
|
83
83
|
@classmethod
|
|
84
84
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
85
|
-
"""Create an instance of
|
|
85
|
+
"""Create an instance of UserInfoPostPayload from a dict"""
|
|
86
86
|
if obj is None:
|
|
87
87
|
return None
|
|
88
88
|
|
|
@@ -19,16 +19,16 @@ import json
|
|
|
19
19
|
|
|
20
20
|
from pydantic import BaseModel, ConfigDict
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
-
from ..models.
|
|
22
|
+
from ..models.organization_fields import OrganizationFields
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
26
|
-
class
|
|
26
|
+
class UserOrganizationsResponse(BaseModel):
|
|
27
27
|
"""
|
|
28
|
-
|
|
28
|
+
UserOrganizationsResponse
|
|
29
29
|
""" # noqa: E501
|
|
30
|
-
|
|
31
|
-
__properties: ClassVar[List[str]] = ["
|
|
30
|
+
organizations: Optional[List[OrganizationFields]] = None
|
|
31
|
+
__properties: ClassVar[List[str]] = ["organizations"]
|
|
32
32
|
|
|
33
33
|
model_config = ConfigDict(
|
|
34
34
|
populate_by_name=True,
|
|
@@ -48,7 +48,7 @@ class NodeStockResponseModel(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 UserOrganizationsResponse 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]:
|
|
@@ -69,18 +69,18 @@ class NodeStockResponseModel(BaseModel):
|
|
|
69
69
|
exclude=excluded_fields,
|
|
70
70
|
exclude_none=True,
|
|
71
71
|
)
|
|
72
|
-
# override the default output from pydantic by calling `to_dict()` of each item in
|
|
72
|
+
# override the default output from pydantic by calling `to_dict()` of each item in organizations (list)
|
|
73
73
|
_items = []
|
|
74
|
-
if self.
|
|
75
|
-
for
|
|
76
|
-
if
|
|
77
|
-
_items.append(
|
|
78
|
-
_dict['
|
|
74
|
+
if self.organizations:
|
|
75
|
+
for _item_organizations in self.organizations:
|
|
76
|
+
if _item_organizations:
|
|
77
|
+
_items.append(_item_organizations.to_dict())
|
|
78
|
+
_dict['organizations'] = _items
|
|
79
79
|
return _dict
|
|
80
80
|
|
|
81
81
|
@classmethod
|
|
82
82
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
83
|
-
"""Create an instance of
|
|
83
|
+
"""Create an instance of UserOrganizationsResponse from a dict"""
|
|
84
84
|
if obj is None:
|
|
85
85
|
return None
|
|
86
86
|
|
|
@@ -88,7 +88,7 @@ class NodeStockResponseModel(BaseModel):
|
|
|
88
88
|
return cls.model_validate(obj)
|
|
89
89
|
|
|
90
90
|
_obj = cls.model_validate({
|
|
91
|
-
"
|
|
91
|
+
"organizations": [OrganizationFields.from_dict(_item) for _item in obj["organizations"]] if obj.get("organizations") is not None else None
|
|
92
92
|
})
|
|
93
93
|
return _obj
|
|
94
94
|
|
|
@@ -39,9 +39,10 @@ class UsersInfoFields(BaseModel):
|
|
|
39
39
|
organization_id: Optional[StrictInt] = None
|
|
40
40
|
phone: Optional[StrictStr] = None
|
|
41
41
|
state: Optional[StrictStr] = None
|
|
42
|
+
stripe_user_id: Optional[StrictStr] = None
|
|
42
43
|
vat_number: Optional[StrictStr] = None
|
|
43
44
|
zip_code: Optional[StrictStr] = None
|
|
44
|
-
__properties: ClassVar[List[str]] = ["billing_address1", "billing_address2", "business", "company_name", "country", "created_at", "email", "id", "name", "organization_id", "phone", "state", "vat_number", "zip_code"]
|
|
45
|
+
__properties: ClassVar[List[str]] = ["billing_address1", "billing_address2", "business", "company_name", "country", "created_at", "email", "id", "name", "organization_id", "phone", "state", "stripe_user_id", "vat_number", "zip_code"]
|
|
45
46
|
|
|
46
47
|
model_config = ConfigDict(
|
|
47
48
|
populate_by_name=True,
|
|
@@ -106,6 +107,7 @@ class UsersInfoFields(BaseModel):
|
|
|
106
107
|
"organization_id": obj.get("organization_id"),
|
|
107
108
|
"phone": obj.get("phone"),
|
|
108
109
|
"state": obj.get("state"),
|
|
110
|
+
"stripe_user_id": obj.get("stripe_user_id"),
|
|
109
111
|
"vat_number": obj.get("vat_number"),
|
|
110
112
|
"zip_code": obj.get("zip_code")
|
|
111
113
|
})
|
|
@@ -18,9 +18,9 @@ import re # noqa: F401
|
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
20
|
from datetime import datetime
|
|
21
|
-
from pydantic import BaseModel, ConfigDict, StrictStr
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, StrictBool, StrictInt, StrictStr
|
|
22
22
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
-
from ..models.
|
|
23
|
+
from ..models.volume_fields_for_instance import VolumeFieldsForInstance
|
|
24
24
|
from typing import Optional, Set
|
|
25
25
|
from typing_extensions import Self
|
|
26
26
|
|
|
@@ -30,9 +30,11 @@ class VolumeAttachmentFields(BaseModel):
|
|
|
30
30
|
""" # noqa: E501
|
|
31
31
|
created_at: Optional[datetime] = None
|
|
32
32
|
device: Optional[StrictStr] = None
|
|
33
|
+
id: Optional[StrictInt] = None
|
|
34
|
+
protected: Optional[StrictBool] = None
|
|
33
35
|
status: Optional[StrictStr] = None
|
|
34
|
-
volume: Optional[
|
|
35
|
-
__properties: ClassVar[List[str]] = ["created_at", "device", "status", "volume"]
|
|
36
|
+
volume: Optional[VolumeFieldsForInstance] = None
|
|
37
|
+
__properties: ClassVar[List[str]] = ["created_at", "device", "id", "protected", "status", "volume"]
|
|
36
38
|
|
|
37
39
|
model_config = ConfigDict(
|
|
38
40
|
populate_by_name=True,
|
|
@@ -90,8 +92,10 @@ class VolumeAttachmentFields(BaseModel):
|
|
|
90
92
|
_obj = cls.model_validate({
|
|
91
93
|
"created_at": obj.get("created_at"),
|
|
92
94
|
"device": obj.get("device"),
|
|
95
|
+
"id": obj.get("id"),
|
|
96
|
+
"protected": obj.get("protected"),
|
|
93
97
|
"status": obj.get("status"),
|
|
94
|
-
"volume":
|
|
98
|
+
"volume": VolumeFieldsForInstance.from_dict(obj["volume"]) if obj.get("volume") is not None else None
|
|
95
99
|
})
|
|
96
100
|
return _obj
|
|
97
101
|
|
|
@@ -20,7 +20,8 @@ import json
|
|
|
20
20
|
from datetime import datetime
|
|
21
21
|
from pydantic import BaseModel, ConfigDict, StrictBool, StrictInt, StrictStr
|
|
22
22
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
-
from ..models.
|
|
23
|
+
from ..models.attachments_fields_for_volume import AttachmentsFieldsForVolume
|
|
24
|
+
from ..models.environment_fields_for_volume import EnvironmentFieldsForVolume
|
|
24
25
|
from typing import Optional, Set
|
|
25
26
|
from typing_extensions import Self
|
|
26
27
|
|
|
@@ -28,11 +29,12 @@ class VolumeFields(BaseModel):
|
|
|
28
29
|
"""
|
|
29
30
|
VolumeFields
|
|
30
31
|
""" # noqa: E501
|
|
32
|
+
attachments: Optional[List[AttachmentsFieldsForVolume]] = None
|
|
31
33
|
bootable: Optional[StrictBool] = None
|
|
32
34
|
callback_url: Optional[StrictStr] = None
|
|
33
35
|
created_at: Optional[datetime] = None
|
|
34
36
|
description: Optional[StrictStr] = None
|
|
35
|
-
environment: Optional[
|
|
37
|
+
environment: Optional[EnvironmentFieldsForVolume] = None
|
|
36
38
|
id: Optional[StrictInt] = None
|
|
37
39
|
image_id: Optional[StrictInt] = None
|
|
38
40
|
name: Optional[StrictStr] = None
|
|
@@ -41,7 +43,7 @@ class VolumeFields(BaseModel):
|
|
|
41
43
|
status: Optional[StrictStr] = None
|
|
42
44
|
updated_at: Optional[datetime] = None
|
|
43
45
|
volume_type: Optional[StrictStr] = None
|
|
44
|
-
__properties: ClassVar[List[str]] = ["bootable", "callback_url", "created_at", "description", "environment", "id", "image_id", "name", "os_image", "size", "status", "updated_at", "volume_type"]
|
|
46
|
+
__properties: ClassVar[List[str]] = ["attachments", "bootable", "callback_url", "created_at", "description", "environment", "id", "image_id", "name", "os_image", "size", "status", "updated_at", "volume_type"]
|
|
45
47
|
|
|
46
48
|
model_config = ConfigDict(
|
|
47
49
|
populate_by_name=True,
|
|
@@ -82,6 +84,13 @@ class VolumeFields(BaseModel):
|
|
|
82
84
|
exclude=excluded_fields,
|
|
83
85
|
exclude_none=True,
|
|
84
86
|
)
|
|
87
|
+
# override the default output from pydantic by calling `to_dict()` of each item in attachments (list)
|
|
88
|
+
_items = []
|
|
89
|
+
if self.attachments:
|
|
90
|
+
for _item_attachments in self.attachments:
|
|
91
|
+
if _item_attachments:
|
|
92
|
+
_items.append(_item_attachments.to_dict())
|
|
93
|
+
_dict['attachments'] = _items
|
|
85
94
|
# override the default output from pydantic by calling `to_dict()` of environment
|
|
86
95
|
if self.environment:
|
|
87
96
|
_dict['environment'] = self.environment.to_dict()
|
|
@@ -97,11 +106,12 @@ class VolumeFields(BaseModel):
|
|
|
97
106
|
return cls.model_validate(obj)
|
|
98
107
|
|
|
99
108
|
_obj = cls.model_validate({
|
|
109
|
+
"attachments": [AttachmentsFieldsForVolume.from_dict(_item) for _item in obj["attachments"]] if obj.get("attachments") is not None else None,
|
|
100
110
|
"bootable": obj.get("bootable"),
|
|
101
111
|
"callback_url": obj.get("callback_url"),
|
|
102
112
|
"created_at": obj.get("created_at"),
|
|
103
113
|
"description": obj.get("description"),
|
|
104
|
-
"environment":
|
|
114
|
+
"environment": EnvironmentFieldsForVolume.from_dict(obj["environment"]) if obj.get("environment") is not None else None,
|
|
105
115
|
"id": obj.get("id"),
|
|
106
116
|
"image_id": obj.get("image_id"),
|
|
107
117
|
"name": obj.get("name"),
|
|
@@ -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 VolumeFieldsForInstance(BaseModel):
|
|
26
26
|
"""
|
|
27
|
-
|
|
27
|
+
VolumeFieldsForInstance
|
|
28
28
|
""" # noqa: E501
|
|
29
29
|
bootable: Optional[StrictBool] = None
|
|
30
30
|
description: Optional[StrictStr] = None
|
|
@@ -52,7 +52,7 @@ class VolumeFieldsforInstance(BaseModel):
|
|
|
52
52
|
|
|
53
53
|
@classmethod
|
|
54
54
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
55
|
-
"""Create an instance of
|
|
55
|
+
"""Create an instance of VolumeFieldsForInstance from a JSON string"""
|
|
56
56
|
return cls.from_dict(json.loads(json_str))
|
|
57
57
|
|
|
58
58
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -77,7 +77,7 @@ class VolumeFieldsforInstance(BaseModel):
|
|
|
77
77
|
|
|
78
78
|
@classmethod
|
|
79
79
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
80
|
-
"""Create an instance of
|
|
80
|
+
"""Create an instance of VolumeFieldsForInstance from a dict"""
|
|
81
81
|
if obj is None:
|
|
82
82
|
return None
|
|
83
83
|
|
hyperstack/models/volumes.py
CHANGED
|
@@ -17,9 +17,9 @@ import pprint
|
|
|
17
17
|
import re # noqa: F401
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
|
-
from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, StrictBool, StrictInt, StrictStr
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
-
from ..models.
|
|
22
|
+
from ..models.volumes_fields import VolumesFields
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
@@ -27,10 +27,13 @@ class Volumes(BaseModel):
|
|
|
27
27
|
"""
|
|
28
28
|
Volumes
|
|
29
29
|
""" # noqa: E501
|
|
30
|
+
count: Optional[StrictInt] = None
|
|
30
31
|
message: Optional[StrictStr] = None
|
|
32
|
+
page: Optional[StrictInt] = None
|
|
33
|
+
page_size: Optional[StrictInt] = None
|
|
31
34
|
status: Optional[StrictBool] = None
|
|
32
|
-
|
|
33
|
-
__properties: ClassVar[List[str]] = ["message", "status", "
|
|
35
|
+
volumes: Optional[List[VolumesFields]] = None
|
|
36
|
+
__properties: ClassVar[List[str]] = ["count", "message", "page", "page_size", "status", "volumes"]
|
|
34
37
|
|
|
35
38
|
model_config = ConfigDict(
|
|
36
39
|
populate_by_name=True,
|
|
@@ -71,13 +74,13 @@ class Volumes(BaseModel):
|
|
|
71
74
|
exclude=excluded_fields,
|
|
72
75
|
exclude_none=True,
|
|
73
76
|
)
|
|
74
|
-
# override the default output from pydantic by calling `to_dict()` of each item in
|
|
77
|
+
# override the default output from pydantic by calling `to_dict()` of each item in volumes (list)
|
|
75
78
|
_items = []
|
|
76
|
-
if self.
|
|
77
|
-
for
|
|
78
|
-
if
|
|
79
|
-
_items.append(
|
|
80
|
-
_dict['
|
|
79
|
+
if self.volumes:
|
|
80
|
+
for _item_volumes in self.volumes:
|
|
81
|
+
if _item_volumes:
|
|
82
|
+
_items.append(_item_volumes.to_dict())
|
|
83
|
+
_dict['volumes'] = _items
|
|
81
84
|
return _dict
|
|
82
85
|
|
|
83
86
|
@classmethod
|
|
@@ -90,9 +93,12 @@ class Volumes(BaseModel):
|
|
|
90
93
|
return cls.model_validate(obj)
|
|
91
94
|
|
|
92
95
|
_obj = cls.model_validate({
|
|
96
|
+
"count": obj.get("count"),
|
|
93
97
|
"message": obj.get("message"),
|
|
98
|
+
"page": obj.get("page"),
|
|
99
|
+
"page_size": obj.get("page_size"),
|
|
94
100
|
"status": obj.get("status"),
|
|
95
|
-
"
|
|
101
|
+
"volumes": [VolumesFields.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None
|
|
96
102
|
})
|
|
97
103
|
return _obj
|
|
98
104
|
|