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.
Files changed (225) hide show
  1. hyperstack/__init__.py +79 -131
  2. hyperstack/api/__init__.py +2 -0
  3. hyperstack/api/alive_api.py +240 -0
  4. hyperstack/api/api_key_api.py +16 -20
  5. hyperstack/api/assigning_member_role_api.py +15 -17
  6. hyperstack/api/auth_api.py +1050 -5
  7. hyperstack/api/beta_access_api.py +856 -0
  8. hyperstack/api/billing_api.py +6461 -673
  9. hyperstack/api/calculate_api.py +8 -9
  10. hyperstack/api/callbacks_api.py +120 -126
  11. hyperstack/api/cluster_events_api.py +1 -2
  12. hyperstack/api/clusters_api.py +2492 -146
  13. hyperstack/api/compliance_api.py +14 -18
  14. hyperstack/api/credit_api.py +17 -15
  15. hyperstack/api/customer_contract_api.py +30 -33
  16. hyperstack/api/dashboard_api.py +4 -5
  17. hyperstack/api/deployment_api.py +4 -8
  18. hyperstack/api/environment_api.py +285 -16
  19. hyperstack/api/firewall_attachment_api.py +11 -9
  20. hyperstack/api/firewalls_api.py +341 -347
  21. hyperstack/api/flavor_api.py +4 -5
  22. hyperstack/api/floating_ip_api.py +50 -49
  23. hyperstack/api/gpu_api.py +1 -2
  24. hyperstack/api/image_api.py +35 -39
  25. hyperstack/api/invite_api.py +288 -18
  26. hyperstack/api/keypair_api.py +22 -26
  27. hyperstack/api/organization_api.py +12 -15
  28. hyperstack/api/partner_config_api.py +564 -0
  29. hyperstack/api/payment_api.py +299 -18
  30. hyperstack/api/permission_api.py +4 -5
  31. hyperstack/api/policy_api.py +4 -5
  32. hyperstack/api/pricebook_api.py +14 -12
  33. hyperstack/api/profile_api.py +13 -17
  34. hyperstack/api/rbac_role_api.py +20 -25
  35. hyperstack/api/region_api.py +7 -8
  36. hyperstack/api/security_rules_api.py +1 -2
  37. hyperstack/api/snapshot_events_api.py +1 -2
  38. hyperstack/api/snapshots_api.py +166 -172
  39. hyperstack/api/stock_api.py +4 -5
  40. hyperstack/api/template_api.py +14 -19
  41. hyperstack/api/user_api.py +55 -49
  42. hyperstack/api/user_detail_choice_api.py +1 -2
  43. hyperstack/api/user_permission_api.py +8 -10
  44. hyperstack/api/virtual_machine_api.py +1529 -929
  45. hyperstack/api/virtual_machine_events_api.py +21 -22
  46. hyperstack/api/vnc_url_api.py +54 -50
  47. hyperstack/api/volume_api.py +340 -40
  48. hyperstack/api/volume_attachment_api.py +342 -42
  49. hyperstack/api_client.py +1 -1
  50. hyperstack/configuration.py +154 -47
  51. hyperstack/models/__init__.py +76 -130
  52. hyperstack/models/{environment_fieldsfor_volume.py → access_token_field.py} +7 -7
  53. hyperstack/models/attach_volume_fields.py +6 -2
  54. hyperstack/models/attach_volumes_payload.py +4 -2
  55. hyperstack/models/{virtual_machine_usage.py → attachments_fields_for_volume.py} +13 -11
  56. hyperstack/models/{flavor_vm_fields.py → attributes.py} +15 -18
  57. hyperstack/models/auth_get_token_response_model.py +4 -6
  58. hyperstack/models/{future_node_model.py → beta_access_request_fields.py} +27 -25
  59. hyperstack/models/{create_gpu.py → beta_access_request_payload.py} +9 -11
  60. hyperstack/models/{create_discount_response.py → beta_access_request_response_model.py} +11 -11
  61. hyperstack/models/{export_billing_data_request.py → beta_access_status_item.py} +20 -23
  62. hyperstack/models/{get_all_discount_for_all_organization_response.py → beta_access_status_response_model.py} +15 -15
  63. hyperstack/models/{exclude_billing_post_response.py → billing_history.py} +13 -11
  64. hyperstack/models/billing_history_data_synthesis_details.py +105 -0
  65. hyperstack/models/{vm_usage_response.py → billing_history_fine_tuning.py} +23 -19
  66. hyperstack/models/billing_history_model_evalutation_details.py +105 -0
  67. hyperstack/models/{get_all_discounts_fields.py → billing_history_serverless_inference.py} +23 -24
  68. hyperstack/models/billing_history_serverless_inference_details.py +105 -0
  69. hyperstack/models/{billingmetricesfields.py → billing_metrices_fields.py} +4 -4
  70. hyperstack/models/{billingmetricesresponse.py → billing_metrices_response.py} +7 -7
  71. hyperstack/models/cluster_fields.py +27 -9
  72. hyperstack/models/{add_update_flavor_organization_payload.py → cluster_flavor_fields.py} +28 -26
  73. hyperstack/models/{historical_instances_fields.py → cluster_node_fields.py} +24 -22
  74. hyperstack/models/{internal_instance_flavor_fields.py → cluster_node_group_fields.py} +17 -17
  75. hyperstack/models/{create_update_policy_response_model.py → cluster_node_groups_create_response.py} +21 -11
  76. hyperstack/models/{create_update_permission_response_model.py → cluster_node_groups_get_response.py} +11 -11
  77. hyperstack/models/{auth_request_login_response_model.py → cluster_node_groups_list_response.py} +15 -11
  78. hyperstack/models/{contract_eligible_instance_fields.py → cluster_node_instance_fields.py} +13 -11
  79. hyperstack/models/{image_logos.py → cluster_nodes_list_response.py} +14 -14
  80. hyperstack/models/{internal_environment_fields.py → cluster_version.py} +13 -9
  81. hyperstack/models/cluster_versions.py +10 -2
  82. hyperstack/models/{future_nodes_stock_model.py → colors.py} +17 -15
  83. hyperstack/models/contract_discount_plan_fields.py +3 -1
  84. hyperstack/models/contract_instance_fields.py +7 -1
  85. hyperstack/models/{future_node_response_model.py → create_cluster_node_fields.py} +23 -18
  86. hyperstack/models/{update_gpu.py → create_cluster_node_group_payload.py} +12 -11
  87. hyperstack/models/create_cluster_payload.py +31 -8
  88. hyperstack/models/create_environment.py +1 -1
  89. hyperstack/models/create_instances_payload.py +10 -8
  90. hyperstack/models/create_profile_payload.py +1 -1
  91. hyperstack/models/create_snapshot_payload.py +2 -4
  92. hyperstack/models/create_volume_payload.py +1 -1
  93. hyperstack/models/data_synthesis_billing_history_details_response_schema.py +95 -0
  94. hyperstack/models/{deployment_fieldsforstartdeployments.py → deployment_fields_for_start_deployments.py} +4 -4
  95. hyperstack/models/{editlabelofanexisting_vm_payload.py → edit_label_of_an_existing_vm_payload.py} +4 -4
  96. hyperstack/models/environment_features.py +14 -2
  97. hyperstack/models/{node_stocks_payload.py → environment_fields_for_volume.py} +10 -12
  98. hyperstack/models/flavor_fields.py +3 -1
  99. hyperstack/models/{customer_fields.py → flavor_label_fields.py} +7 -7
  100. hyperstack/models/{getcreditandthresholdinfo.py → get_credit_and_threshold_info.py} +4 -4
  101. hyperstack/models/{getcreditandthresholdinfoinresponse.py → get_credit_and_threshold_info_in_response.py} +7 -7
  102. hyperstack/models/{region_payload.py → get_instance_logs_response.py} +7 -9
  103. hyperstack/models/instance_fields.py +14 -4
  104. hyperstack/models/instance_flavor_fields.py +13 -1
  105. hyperstack/models/{flavor_response.py → keypair_environment_features.py} +20 -16
  106. hyperstack/models/{internal_instance_keypair_fields.py → keypair_environment_fields.py} +13 -11
  107. hyperstack/models/keypair_fields.py +6 -2
  108. hyperstack/models/{lastdaycostfields.py → last_day_cost_fields.py} +4 -4
  109. hyperstack/models/{lastdaycostresponse.py → last_day_cost_response.py} +7 -7
  110. hyperstack/models/{export_billing_data_response.py → logos.py} +13 -9
  111. hyperstack/models/{creditrequestresponse.py → master_flavors_response.py} +14 -14
  112. hyperstack/models/{customer_payload.py → mfa_status_fields.py} +8 -10
  113. hyperstack/models/{gpu.py → mfa_status_response.py} +11 -11
  114. hyperstack/models/model_evaluation_billing_history_details_response_schema.py +95 -0
  115. hyperstack/models/{organization_thresholdfields.py → organization_threshold_fields.py} +4 -4
  116. hyperstack/models/{organizationthresholdupdateresponse.py → organization_threshold_update_response.py} +7 -7
  117. hyperstack/models/{organizationthresholdsresponse.py → organization_thresholds_response.py} +7 -7
  118. hyperstack/models/{logo_get_response.py → pagination.py} +12 -12
  119. hyperstack/models/{billing_response.py → partner_config.py} +31 -20
  120. hyperstack/models/payment_details_fields.py +5 -1
  121. hyperstack/models/{logout_payload.py → primary_color.py} +10 -8
  122. hyperstack/models/region_fields.py +16 -2
  123. hyperstack/models/{vm_usage_request_payload.py → request_instance_logs_payload.py} +8 -8
  124. hyperstack/models/{stock_visibility_user_payload.py → request_instance_logs_response.py} +8 -8
  125. hyperstack/models/{contract_billing_history.py → resource_level_billing_bucket_details_resources.py} +10 -10
  126. hyperstack/models/{node_response_model.py → resource_level_billing_history_resources_cluster.py} +21 -11
  127. hyperstack/models/resource_level_billing_history_response_attributes.py +3 -1
  128. hyperstack/models/{get_all_contracts_response_model.py → resource_level_bucket_billing_details_response_model.py} +11 -15
  129. hyperstack/models/{contract_billing_history_response_model.py → resource_level_bucket_billing_history_response_model.py} +11 -11
  130. hyperstack/models/resource_level_cluster_billing_details_response_model.py +95 -0
  131. hyperstack/models/resource_level_cluster_billing_history_response_model.py +95 -0
  132. hyperstack/models/{get_discount_detail_response.py → resource_level_cluster_graph_billing_details_response_model.py} +11 -11
  133. hyperstack/models/{organization_object_response.py → resource_level_graph_billing_details_bucket.py} +18 -14
  134. hyperstack/models/{update_discounts_status_payload.py → secondary_color.py} +10 -8
  135. hyperstack/models/{security_rules_fieldsfor_instance.py → security_rules_fields_for_instance.py} +4 -4
  136. hyperstack/models/serverless_inferenced_billing_history_details_response_schema.py +95 -0
  137. hyperstack/models/snapshot_fields.py +6 -1
  138. hyperstack/models/snapshot_retrieve_fields.py +29 -2
  139. hyperstack/models/start_deployment.py +3 -3
  140. hyperstack/models/{subscribeorunsubscribeupdatepayload.py → subscribe_or_unsubscribe_update_payload.py} +4 -4
  141. hyperstack/models/token_based_billing_history_response.py +95 -0
  142. hyperstack/models/{update_keypairnameresponse.py → update_keypair_name_response.py} +4 -4
  143. hyperstack/models/update_volume_attachment_payload.py +87 -0
  144. hyperstack/models/{verify_api_key_payload.py → update_volume_payload.py} +7 -7
  145. hyperstack/models/{stock_visibility_user_list_response.py → update_volume_response.py} +14 -16
  146. hyperstack/models/{auth_request_login_fields.py → uris.py} +19 -9
  147. hyperstack/models/{userinfopostpayload.py → user_info_post_payload.py} +4 -4
  148. hyperstack/models/{node_stock_response_model.py → user_organizations_response.py} +14 -14
  149. hyperstack/models/users_info_fields.py +3 -1
  150. hyperstack/models/volume_attachment_fields.py +9 -5
  151. hyperstack/models/volume_fields.py +14 -4
  152. hyperstack/models/{volume_fieldsfor_instance.py → volume_fields_for_instance.py} +4 -4
  153. hyperstack/models/volumes.py +17 -11
  154. hyperstack/models/{instances_summary_fields.py → volumes_fields.py} +33 -29
  155. hyperstack/models/workload_billing_history_response.py +95 -0
  156. {hyperstack-0.1.23.dist-info → hyperstack-1.41.0a0.dist-info}/METADATA +9 -2
  157. hyperstack-1.41.0a0.dist-info/RECORD +349 -0
  158. {hyperstack-0.1.23.dist-info → hyperstack-1.41.0a0.dist-info}/WHEEL +1 -1
  159. hyperstack/models/api_key_verify_fields.py +0 -93
  160. hyperstack/models/billing_immune_resources_response.py +0 -95
  161. hyperstack/models/contract_billing_history_response_attributes.py +0 -99
  162. hyperstack/models/contract_change_payload.py +0 -101
  163. hyperstack/models/contract_eligible_instances_response.py +0 -101
  164. hyperstack/models/contract_event_create_model.py +0 -91
  165. hyperstack/models/contract_resource_payload.py +0 -95
  166. hyperstack/models/contractl_billing_history_response_metrics.py +0 -87
  167. hyperstack/models/create_contract_fields.py +0 -110
  168. hyperstack/models/create_contract_payload.py +0 -106
  169. hyperstack/models/create_discounts_payload.py +0 -112
  170. hyperstack/models/create_update_permission_payload.py +0 -93
  171. hyperstack/models/create_update_policy_payload.py +0 -93
  172. hyperstack/models/creditrechargelimitfield.py +0 -93
  173. hyperstack/models/creditrechargelimitresponse.py +0 -99
  174. hyperstack/models/creditrequests.py +0 -96
  175. hyperstack/models/data.py +0 -91
  176. hyperstack/models/discount_entity_model.py +0 -97
  177. hyperstack/models/discount_fields.py +0 -100
  178. hyperstack/models/discount_plan_fields.py +0 -108
  179. hyperstack/models/discount_resource_fields.py +0 -93
  180. hyperstack/models/discount_resource_payload.py +0 -93
  181. hyperstack/models/exclude_billing_post_payload.py +0 -91
  182. hyperstack/models/field_change.py +0 -91
  183. hyperstack/models/flavor_payload.py +0 -101
  184. hyperstack/models/flavor_vms_response.py +0 -99
  185. hyperstack/models/future_node_stock_model.py +0 -93
  186. hyperstack/models/future_node_update_model.py +0 -98
  187. hyperstack/models/get_all_contract_fields.py +0 -100
  188. hyperstack/models/get_discount_response.py +0 -99
  189. hyperstack/models/get_entity_discount_detail_response.py +0 -108
  190. hyperstack/models/get_token_payload.py +0 -89
  191. hyperstack/models/get_version_response.py +0 -91
  192. hyperstack/models/historical_instance.py +0 -101
  193. hyperstack/models/infrahub_resource_object_response.py +0 -119
  194. hyperstack/models/insert_discount_plan_fields.py +0 -112
  195. hyperstack/models/internal_instance_fields.py +0 -156
  196. hyperstack/models/internal_instance_image_fields.py +0 -95
  197. hyperstack/models/internal_instances_response.py +0 -99
  198. hyperstack/models/internal_security_rules_fields_for_instance.py +0 -104
  199. hyperstack/models/internal_volume_attachment_fields.py +0 -98
  200. hyperstack/models/internal_volume_fields.py +0 -95
  201. hyperstack/models/internal_volumes_response.py +0 -99
  202. hyperstack/models/new_stock_update_response_model.py +0 -89
  203. hyperstack/models/node_model.py +0 -114
  204. hyperstack/models/node_payload_model.py +0 -97
  205. hyperstack/models/node_power_usage_model.py +0 -120
  206. hyperstack/models/node_stock_payload_model.py +0 -95
  207. hyperstack/models/organizationcreditrechargelimitresponse.py +0 -95
  208. hyperstack/models/power_usage_model.py +0 -89
  209. hyperstack/models/pricebook_resource_object_response.py +0 -107
  210. hyperstack/models/refresh_token_payload.py +0 -89
  211. hyperstack/models/region_response.py +0 -95
  212. hyperstack/models/set_defaults_payload.py +0 -89
  213. hyperstack/models/single_visibility_user_response.py +0 -91
  214. hyperstack/models/success_response_model.py +0 -89
  215. hyperstack/models/token_fields.py +0 -91
  216. hyperstack/models/update_contract_payload.py +0 -104
  217. hyperstack/models/update_discounts_payload.py +0 -102
  218. hyperstack/models/user_transfer_payload.py +0 -89
  219. hyperstack/models/verify_api_key_response_model.py +0 -95
  220. hyperstack/models/volume_status_change_fields.py +0 -96
  221. hyperstack/models/volumes_last_status_change_response.py +0 -99
  222. hyperstack/models/warning_mail_log_fields.py +0 -99
  223. hyperstack/models/warning_mail_log_response.py +0 -101
  224. hyperstack-0.1.23.dist-info/RECORD +0 -401
  225. {hyperstack-0.1.23.dist-info → hyperstack-1.41.0a0.dist-info}/top_level.txt +0 -0
@@ -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 AuthRequestLoginFields(BaseModel):
25
+ class URIs(BaseModel):
26
26
  """
27
- AuthRequestLoginFields
27
+ URIs
28
28
  """ # noqa: E501
29
- authorization_url: Optional[StrictStr] = None
30
- session_id: Optional[StrictStr] = None
31
- __properties: ClassVar[List[str]] = ["authorization_url", "session_id"]
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 AuthRequestLoginFields from a JSON string"""
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 AuthRequestLoginFields from a dict"""
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
- "authorization_url": obj.get("authorization_url"),
85
- "session_id": obj.get("session_id")
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 Userinfopostpayload(BaseModel):
25
+ class UserInfoPostPayload(BaseModel):
26
26
  """
27
- Userinfopostpayload
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 Userinfopostpayload from a JSON string"""
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 Userinfopostpayload from a dict"""
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.node_response_model import NodeResponseModel
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 NodeStockResponseModel(BaseModel):
26
+ class UserOrganizationsResponse(BaseModel):
27
27
  """
28
- NodeStockResponseModel
28
+ UserOrganizationsResponse
29
29
  """ # noqa: E501
30
- stocks: Optional[List[NodeResponseModel]] = None
31
- __properties: ClassVar[List[str]] = ["stocks"]
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 NodeStockResponseModel from a JSON string"""
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 stocks (list)
72
+ # override the default output from pydantic by calling `to_dict()` of each item in organizations (list)
73
73
  _items = []
74
- if self.stocks:
75
- for _item_stocks in self.stocks:
76
- if _item_stocks:
77
- _items.append(_item_stocks.to_dict())
78
- _dict['stocks'] = _items
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 NodeStockResponseModel from a dict"""
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
- "stocks": [NodeResponseModel.from_dict(_item) for _item in obj["stocks"]] if obj.get("stocks") is not None else None
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.volume_fieldsfor_instance import VolumeFieldsforInstance
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[VolumeFieldsforInstance] = None
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": VolumeFieldsforInstance.from_dict(obj["volume"]) if obj.get("volume") is not None else None
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.environment_fieldsfor_volume import EnvironmentFieldsforVolume
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[EnvironmentFieldsforVolume] = None
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": EnvironmentFieldsforVolume.from_dict(obj["environment"]) if obj.get("environment") is not None else None,
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 VolumeFieldsforInstance(BaseModel):
25
+ class VolumeFieldsForInstance(BaseModel):
26
26
  """
27
- VolumeFieldsforInstance
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 VolumeFieldsforInstance from a JSON string"""
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 VolumeFieldsforInstance from a dict"""
80
+ """Create an instance of VolumeFieldsForInstance from a dict"""
81
81
  if obj is None:
82
82
  return None
83
83
 
@@ -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.volume_fields import VolumeFields
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
- volume: Optional[List[VolumeFields]] = None
33
- __properties: ClassVar[List[str]] = ["message", "status", "volume"]
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 volume (list)
77
+ # override the default output from pydantic by calling `to_dict()` of each item in volumes (list)
75
78
  _items = []
76
- if self.volume:
77
- for _item_volume in self.volume:
78
- if _item_volume:
79
- _items.append(_item_volume.to_dict())
80
- _dict['volume'] = _items
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
- "volume": [VolumeFields.from_dict(_item) for _item in obj["volume"]] if obj.get("volume") is not None else None
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
 
@@ -18,33 +18,31 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
  from datetime import datetime
21
- from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
21
+ from pydantic import BaseModel, ConfigDict, StrictBool, StrictInt, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
+ from ..models.attachments_fields_for_volume import AttachmentsFieldsForVolume
24
+ from ..models.environment_fields_for_volume import EnvironmentFieldsForVolume
23
25
  from typing import Optional, Set
24
26
  from typing_extensions import Self
25
27
 
26
- class InstancesSummaryFields(BaseModel):
28
+ class VolumesFields(BaseModel):
27
29
  """
28
- InstancesSummaryFields
30
+ VolumesFields
29
31
  """ # noqa: E501
32
+ attachments: Optional[List[AttachmentsFieldsForVolume]] = None
33
+ bootable: Optional[StrictBool] = None
34
+ callback_url: Optional[StrictStr] = None
30
35
  created_at: Optional[datetime] = None
31
- environment: Optional[StrictStr] = None
32
- environment_id: Optional[StrictInt] = None
33
- fixed_ip: Optional[StrictStr] = None
34
- flavor: Optional[StrictStr] = None
35
- flavor_id: Optional[StrictInt] = None
36
- floating_ip: Optional[StrictStr] = None
37
- floating_ip_status: Optional[StrictStr] = None
36
+ description: Optional[StrictStr] = None
37
+ environment: Optional[EnvironmentFieldsForVolume] = None
38
38
  id: Optional[StrictInt] = None
39
- image: Optional[StrictStr] = None
40
39
  image_id: Optional[StrictInt] = None
41
- keypair: Optional[StrictStr] = None
42
- keypair_id: Optional[StrictInt] = None
43
40
  name: Optional[StrictStr] = None
44
- org_id: Optional[StrictInt] = None
41
+ size: Optional[StrictInt] = None
45
42
  status: Optional[StrictStr] = None
46
43
  updated_at: Optional[datetime] = None
47
- __properties: ClassVar[List[str]] = ["created_at", "environment", "environment_id", "fixed_ip", "flavor", "flavor_id", "floating_ip", "floating_ip_status", "id", "image", "image_id", "keypair", "keypair_id", "name", "org_id", "status", "updated_at"]
44
+ volume_type: Optional[StrictStr] = None
45
+ __properties: ClassVar[List[str]] = ["attachments", "bootable", "callback_url", "created_at", "description", "environment", "id", "image_id", "name", "size", "status", "updated_at", "volume_type"]
48
46
 
49
47
  model_config = ConfigDict(
50
48
  populate_by_name=True,
@@ -64,7 +62,7 @@ class InstancesSummaryFields(BaseModel):
64
62
 
65
63
  @classmethod
66
64
  def from_json(cls, json_str: str) -> Optional[Self]:
67
- """Create an instance of InstancesSummaryFields from a JSON string"""
65
+ """Create an instance of VolumesFields from a JSON string"""
68
66
  return cls.from_dict(json.loads(json_str))
69
67
 
70
68
  def to_dict(self) -> Dict[str, Any]:
@@ -85,11 +83,21 @@ class InstancesSummaryFields(BaseModel):
85
83
  exclude=excluded_fields,
86
84
  exclude_none=True,
87
85
  )
86
+ # override the default output from pydantic by calling `to_dict()` of each item in attachments (list)
87
+ _items = []
88
+ if self.attachments:
89
+ for _item_attachments in self.attachments:
90
+ if _item_attachments:
91
+ _items.append(_item_attachments.to_dict())
92
+ _dict['attachments'] = _items
93
+ # override the default output from pydantic by calling `to_dict()` of environment
94
+ if self.environment:
95
+ _dict['environment'] = self.environment.to_dict()
88
96
  return _dict
89
97
 
90
98
  @classmethod
91
99
  def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
92
- """Create an instance of InstancesSummaryFields from a dict"""
100
+ """Create an instance of VolumesFields from a dict"""
93
101
  if obj is None:
94
102
  return None
95
103
 
@@ -97,23 +105,19 @@ class InstancesSummaryFields(BaseModel):
97
105
  return cls.model_validate(obj)
98
106
 
99
107
  _obj = cls.model_validate({
108
+ "attachments": [AttachmentsFieldsForVolume.from_dict(_item) for _item in obj["attachments"]] if obj.get("attachments") is not None else None,
109
+ "bootable": obj.get("bootable"),
110
+ "callback_url": obj.get("callback_url"),
100
111
  "created_at": obj.get("created_at"),
101
- "environment": obj.get("environment"),
102
- "environment_id": obj.get("environment_id"),
103
- "fixed_ip": obj.get("fixed_ip"),
104
- "flavor": obj.get("flavor"),
105
- "flavor_id": obj.get("flavor_id"),
106
- "floating_ip": obj.get("floating_ip"),
107
- "floating_ip_status": obj.get("floating_ip_status"),
112
+ "description": obj.get("description"),
113
+ "environment": EnvironmentFieldsForVolume.from_dict(obj["environment"]) if obj.get("environment") is not None else None,
108
114
  "id": obj.get("id"),
109
- "image": obj.get("image"),
110
115
  "image_id": obj.get("image_id"),
111
- "keypair": obj.get("keypair"),
112
- "keypair_id": obj.get("keypair_id"),
113
116
  "name": obj.get("name"),
114
- "org_id": obj.get("org_id"),
117
+ "size": obj.get("size"),
115
118
  "status": obj.get("status"),
116
- "updated_at": obj.get("updated_at")
119
+ "updated_at": obj.get("updated_at"),
120
+ "volume_type": obj.get("volume_type")
117
121
  })
118
122
  return _obj
119
123
 
@@ -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_fine_tuning import BillingHistoryFineTuning
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class WorkloadBillingHistoryResponse(BaseModel):
27
+ """
28
+ WorkloadBillingHistoryResponse
29
+ """ # noqa: E501
30
+ billing_history_fine_tuning: Optional[BillingHistoryFineTuning] = None
31
+ message: Optional[StrictStr] = None
32
+ success: Optional[StrictBool] = None
33
+ __properties: ClassVar[List[str]] = ["billing_history_fine_tuning", "message", "success"]
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 WorkloadBillingHistoryResponse 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_fine_tuning
75
+ if self.billing_history_fine_tuning:
76
+ _dict['billing_history_fine_tuning'] = self.billing_history_fine_tuning.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 WorkloadBillingHistoryResponse 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_fine_tuning": BillingHistoryFineTuning.from_dict(obj["billing_history_fine_tuning"]) if obj.get("billing_history_fine_tuning") is not None else None,
90
+ "message": obj.get("message"),
91
+ "success": obj.get("success")
92
+ })
93
+ return _obj
94
+
95
+
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: hyperstack
3
- Version: 0.1.23
3
+ Version: 1.41.0a0
4
4
  Summary: Infrahub-API
5
5
  Home-page:
6
6
  Author: OpenAPI Generator community
@@ -11,6 +11,13 @@ Requires-Dist: urllib3<3.0.0,>=1.25.3
11
11
  Requires-Dist: python-dateutil>=2.8.2
12
12
  Requires-Dist: pydantic>=2
13
13
  Requires-Dist: typing-extensions>=4.7.1
14
+ Dynamic: author
15
+ Dynamic: author-email
16
+ Dynamic: description
17
+ Dynamic: description-content-type
18
+ Dynamic: keywords
19
+ Dynamic: requires-dist
20
+ Dynamic: summary
14
21
 
15
22
  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.
16
23