hyperstack 1.25.0a0__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 +1 -11
- 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 +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/{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.0a0.dist-info}/METADATA +2 -2
- hyperstack-1.41.0a0.dist-info/RECORD +349 -0
- {hyperstack-1.25.0a0.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-1.25.0a0.dist-info/RECORD +0 -401
- {hyperstack-1.25.0a0.dist-info → hyperstack-1.41.0a0.dist-info}/top_level.txt +0 -0
hyperstack/models/{contract_billing_history.py → resource_level_billing_bucket_details_resources.py}
RENAMED
|
@@ -19,17 +19,17 @@ import json
|
|
|
19
19
|
|
|
20
20
|
from pydantic import BaseModel, ConfigDict
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
-
from ..models.
|
|
23
|
-
from ..models.
|
|
22
|
+
from ..models.resource_level_billing_details_attributes import ResourceLevelBillingDetailsAttributes
|
|
23
|
+
from ..models.resource_level_billing_details_metrics import ResourceLevelBillingDetailsMetrics
|
|
24
24
|
from typing import Optional, Set
|
|
25
25
|
from typing_extensions import Self
|
|
26
26
|
|
|
27
|
-
class
|
|
27
|
+
class ResourceLevelBillingBucketDetailsResources(BaseModel):
|
|
28
28
|
"""
|
|
29
|
-
|
|
29
|
+
ResourceLevelBillingBucketDetailsResources
|
|
30
30
|
""" # noqa: E501
|
|
31
|
-
attributes: Optional[
|
|
32
|
-
metrics: Optional[
|
|
31
|
+
attributes: Optional[ResourceLevelBillingDetailsAttributes] = None
|
|
32
|
+
metrics: Optional[ResourceLevelBillingDetailsMetrics] = None
|
|
33
33
|
__properties: ClassVar[List[str]] = ["attributes", "metrics"]
|
|
34
34
|
|
|
35
35
|
model_config = ConfigDict(
|
|
@@ -50,7 +50,7 @@ class ContractBillingHistory(BaseModel):
|
|
|
50
50
|
|
|
51
51
|
@classmethod
|
|
52
52
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
53
|
-
"""Create an instance of
|
|
53
|
+
"""Create an instance of ResourceLevelBillingBucketDetailsResources from a JSON string"""
|
|
54
54
|
return cls.from_dict(json.loads(json_str))
|
|
55
55
|
|
|
56
56
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -81,7 +81,7 @@ class ContractBillingHistory(BaseModel):
|
|
|
81
81
|
|
|
82
82
|
@classmethod
|
|
83
83
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
84
|
-
"""Create an instance of
|
|
84
|
+
"""Create an instance of ResourceLevelBillingBucketDetailsResources from a dict"""
|
|
85
85
|
if obj is None:
|
|
86
86
|
return None
|
|
87
87
|
|
|
@@ -89,8 +89,8 @@ class ContractBillingHistory(BaseModel):
|
|
|
89
89
|
return cls.model_validate(obj)
|
|
90
90
|
|
|
91
91
|
_obj = cls.model_validate({
|
|
92
|
-
"attributes":
|
|
93
|
-
"metrics":
|
|
92
|
+
"attributes": ResourceLevelBillingDetailsAttributes.from_dict(obj["attributes"]) if obj.get("attributes") is not None else None,
|
|
93
|
+
"metrics": ResourceLevelBillingDetailsMetrics.from_dict(obj["metrics"]) if obj.get("metrics") is not None else None
|
|
94
94
|
})
|
|
95
95
|
return _obj
|
|
96
96
|
|
hyperstack/models/{node_response_model.py → resource_level_billing_history_resources_cluster.py}
RENAMED
|
@@ -17,19 +17,22 @@ 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
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
-
from ..models.
|
|
22
|
+
from ..models.resource_level_billing_history_resources import ResourceLevelBillingHistoryResources
|
|
23
|
+
from ..models.resource_level_billing_history_response_attributes import ResourceLevelBillingHistoryResponseAttributes
|
|
24
|
+
from ..models.resource_level_billing_history_response_metrics import ResourceLevelBillingHistoryResponseMetrics
|
|
23
25
|
from typing import Optional, Set
|
|
24
26
|
from typing_extensions import Self
|
|
25
27
|
|
|
26
|
-
class
|
|
28
|
+
class ResourceLevelBillingHistoryResourcesCluster(BaseModel):
|
|
27
29
|
"""
|
|
28
|
-
|
|
30
|
+
ResourceLevelBillingHistoryResourcesCluster
|
|
29
31
|
""" # noqa: E501
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
attributes: Optional[ResourceLevelBillingHistoryResponseAttributes] = None
|
|
33
|
+
metrics: Optional[ResourceLevelBillingHistoryResponseMetrics] = None
|
|
34
|
+
nodes: Optional[List[ResourceLevelBillingHistoryResources]] = None
|
|
35
|
+
__properties: ClassVar[List[str]] = ["attributes", "metrics", "nodes"]
|
|
33
36
|
|
|
34
37
|
model_config = ConfigDict(
|
|
35
38
|
populate_by_name=True,
|
|
@@ -49,7 +52,7 @@ class NodeResponseModel(BaseModel):
|
|
|
49
52
|
|
|
50
53
|
@classmethod
|
|
51
54
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
52
|
-
"""Create an instance of
|
|
55
|
+
"""Create an instance of ResourceLevelBillingHistoryResourcesCluster from a JSON string"""
|
|
53
56
|
return cls.from_dict(json.loads(json_str))
|
|
54
57
|
|
|
55
58
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -70,6 +73,12 @@ class NodeResponseModel(BaseModel):
|
|
|
70
73
|
exclude=excluded_fields,
|
|
71
74
|
exclude_none=True,
|
|
72
75
|
)
|
|
76
|
+
# override the default output from pydantic by calling `to_dict()` of attributes
|
|
77
|
+
if self.attributes:
|
|
78
|
+
_dict['attributes'] = self.attributes.to_dict()
|
|
79
|
+
# override the default output from pydantic by calling `to_dict()` of metrics
|
|
80
|
+
if self.metrics:
|
|
81
|
+
_dict['metrics'] = self.metrics.to_dict()
|
|
73
82
|
# override the default output from pydantic by calling `to_dict()` of each item in nodes (list)
|
|
74
83
|
_items = []
|
|
75
84
|
if self.nodes:
|
|
@@ -81,7 +90,7 @@ class NodeResponseModel(BaseModel):
|
|
|
81
90
|
|
|
82
91
|
@classmethod
|
|
83
92
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
84
|
-
"""Create an instance of
|
|
93
|
+
"""Create an instance of ResourceLevelBillingHistoryResourcesCluster from a dict"""
|
|
85
94
|
if obj is None:
|
|
86
95
|
return None
|
|
87
96
|
|
|
@@ -89,8 +98,9 @@ class NodeResponseModel(BaseModel):
|
|
|
89
98
|
return cls.model_validate(obj)
|
|
90
99
|
|
|
91
100
|
_obj = cls.model_validate({
|
|
92
|
-
"
|
|
93
|
-
"
|
|
101
|
+
"attributes": ResourceLevelBillingHistoryResponseAttributes.from_dict(obj["attributes"]) if obj.get("attributes") is not None else None,
|
|
102
|
+
"metrics": ResourceLevelBillingHistoryResponseMetrics.from_dict(obj["metrics"]) if obj.get("metrics") is not None else None,
|
|
103
|
+
"nodes": [ResourceLevelBillingHistoryResources.from_dict(_item) for _item in obj["nodes"]] if obj.get("nodes") is not None else None
|
|
94
104
|
})
|
|
95
105
|
return _obj
|
|
96
106
|
|
|
@@ -26,11 +26,12 @@ class ResourceLevelBillingHistoryResponseAttributes(BaseModel):
|
|
|
26
26
|
"""
|
|
27
27
|
ResourceLevelBillingHistoryResponseAttributes
|
|
28
28
|
""" # noqa: E501
|
|
29
|
+
contract_id: Optional[StrictInt] = None
|
|
29
30
|
id: Optional[StrictStr] = None
|
|
30
31
|
infrahub_id: Optional[StrictInt] = None
|
|
31
32
|
resource_name: Optional[StrictStr] = None
|
|
32
33
|
status: Optional[StrictStr] = None
|
|
33
|
-
__properties: ClassVar[List[str]] = ["id", "infrahub_id", "resource_name", "status"]
|
|
34
|
+
__properties: ClassVar[List[str]] = ["contract_id", "id", "infrahub_id", "resource_name", "status"]
|
|
34
35
|
|
|
35
36
|
model_config = ConfigDict(
|
|
36
37
|
populate_by_name=True,
|
|
@@ -83,6 +84,7 @@ class ResourceLevelBillingHistoryResponseAttributes(BaseModel):
|
|
|
83
84
|
return cls.model_validate(obj)
|
|
84
85
|
|
|
85
86
|
_obj = cls.model_validate({
|
|
87
|
+
"contract_id": obj.get("contract_id"),
|
|
86
88
|
"id": obj.get("id"),
|
|
87
89
|
"infrahub_id": obj.get("infrahub_id"),
|
|
88
90
|
"resource_name": obj.get("resource_name"),
|
|
@@ -19,18 +19,18 @@ import json
|
|
|
19
19
|
|
|
20
20
|
from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
-
from ..models.
|
|
22
|
+
from ..models.resource_level_billing_bucket_details_resources import ResourceLevelBillingBucketDetailsResources
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
26
|
-
class
|
|
26
|
+
class ResourceLevelBucketBillingDetailsResponseModel(BaseModel):
|
|
27
27
|
"""
|
|
28
|
-
|
|
28
|
+
ResourceLevelBucketBillingDetailsResponseModel
|
|
29
29
|
""" # noqa: E501
|
|
30
|
-
|
|
30
|
+
billing_history_bucket_details: Optional[ResourceLevelBillingBucketDetailsResources] = None
|
|
31
31
|
message: Optional[StrictStr] = None
|
|
32
32
|
status: Optional[StrictBool] = None
|
|
33
|
-
__properties: ClassVar[List[str]] = ["
|
|
33
|
+
__properties: ClassVar[List[str]] = ["billing_history_bucket_details", "message", "status"]
|
|
34
34
|
|
|
35
35
|
model_config = ConfigDict(
|
|
36
36
|
populate_by_name=True,
|
|
@@ -50,7 +50,7 @@ class GetAllContractsResponseModel(BaseModel):
|
|
|
50
50
|
|
|
51
51
|
@classmethod
|
|
52
52
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
53
|
-
"""Create an instance of
|
|
53
|
+
"""Create an instance of ResourceLevelBucketBillingDetailsResponseModel from a JSON string"""
|
|
54
54
|
return cls.from_dict(json.loads(json_str))
|
|
55
55
|
|
|
56
56
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -71,18 +71,14 @@ class GetAllContractsResponseModel(BaseModel):
|
|
|
71
71
|
exclude=excluded_fields,
|
|
72
72
|
exclude_none=True,
|
|
73
73
|
)
|
|
74
|
-
# override the default output from pydantic by calling `to_dict()` of
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
for _item_contracts in self.contracts:
|
|
78
|
-
if _item_contracts:
|
|
79
|
-
_items.append(_item_contracts.to_dict())
|
|
80
|
-
_dict['contracts'] = _items
|
|
74
|
+
# override the default output from pydantic by calling `to_dict()` of billing_history_bucket_details
|
|
75
|
+
if self.billing_history_bucket_details:
|
|
76
|
+
_dict['billing_history_bucket_details'] = self.billing_history_bucket_details.to_dict()
|
|
81
77
|
return _dict
|
|
82
78
|
|
|
83
79
|
@classmethod
|
|
84
80
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
85
|
-
"""Create an instance of
|
|
81
|
+
"""Create an instance of ResourceLevelBucketBillingDetailsResponseModel from a dict"""
|
|
86
82
|
if obj is None:
|
|
87
83
|
return None
|
|
88
84
|
|
|
@@ -90,7 +86,7 @@ class GetAllContractsResponseModel(BaseModel):
|
|
|
90
86
|
return cls.model_validate(obj)
|
|
91
87
|
|
|
92
88
|
_obj = cls.model_validate({
|
|
93
|
-
"
|
|
89
|
+
"billing_history_bucket_details": ResourceLevelBillingBucketDetailsResources.from_dict(obj["billing_history_bucket_details"]) if obj.get("billing_history_bucket_details") is not None else None,
|
|
94
90
|
"message": obj.get("message"),
|
|
95
91
|
"status": obj.get("status")
|
|
96
92
|
})
|
|
@@ -19,18 +19,18 @@ import json
|
|
|
19
19
|
|
|
20
20
|
from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
-
from ..models.
|
|
22
|
+
from ..models.resource_level_billing_history import ResourceLevelBillingHistory
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
26
|
-
class
|
|
26
|
+
class ResourceLevelBucketBillingHistoryResponseModel(BaseModel):
|
|
27
27
|
"""
|
|
28
|
-
|
|
28
|
+
ResourceLevelBucketBillingHistoryResponseModel
|
|
29
29
|
""" # noqa: E501
|
|
30
|
-
|
|
30
|
+
billing_history_bucket: Optional[ResourceLevelBillingHistory] = None
|
|
31
31
|
message: Optional[StrictStr] = None
|
|
32
32
|
status: Optional[StrictBool] = None
|
|
33
|
-
__properties: ClassVar[List[str]] = ["
|
|
33
|
+
__properties: ClassVar[List[str]] = ["billing_history_bucket", "message", "status"]
|
|
34
34
|
|
|
35
35
|
model_config = ConfigDict(
|
|
36
36
|
populate_by_name=True,
|
|
@@ -50,7 +50,7 @@ class ContractBillingHistoryResponseModel(BaseModel):
|
|
|
50
50
|
|
|
51
51
|
@classmethod
|
|
52
52
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
53
|
-
"""Create an instance of
|
|
53
|
+
"""Create an instance of ResourceLevelBucketBillingHistoryResponseModel from a JSON string"""
|
|
54
54
|
return cls.from_dict(json.loads(json_str))
|
|
55
55
|
|
|
56
56
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -71,14 +71,14 @@ class ContractBillingHistoryResponseModel(BaseModel):
|
|
|
71
71
|
exclude=excluded_fields,
|
|
72
72
|
exclude_none=True,
|
|
73
73
|
)
|
|
74
|
-
# override the default output from pydantic by calling `to_dict()` of
|
|
75
|
-
if self.
|
|
76
|
-
_dict['
|
|
74
|
+
# override the default output from pydantic by calling `to_dict()` of billing_history_bucket
|
|
75
|
+
if self.billing_history_bucket:
|
|
76
|
+
_dict['billing_history_bucket'] = self.billing_history_bucket.to_dict()
|
|
77
77
|
return _dict
|
|
78
78
|
|
|
79
79
|
@classmethod
|
|
80
80
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
81
|
-
"""Create an instance of
|
|
81
|
+
"""Create an instance of ResourceLevelBucketBillingHistoryResponseModel from a dict"""
|
|
82
82
|
if obj is None:
|
|
83
83
|
return None
|
|
84
84
|
|
|
@@ -86,7 +86,7 @@ class ContractBillingHistoryResponseModel(BaseModel):
|
|
|
86
86
|
return cls.model_validate(obj)
|
|
87
87
|
|
|
88
88
|
_obj = cls.model_validate({
|
|
89
|
-
"
|
|
89
|
+
"billing_history_bucket": ResourceLevelBillingHistory.from_dict(obj["billing_history_bucket"]) if obj.get("billing_history_bucket") is not None else None,
|
|
90
90
|
"message": obj.get("message"),
|
|
91
91
|
"status": obj.get("status")
|
|
92
92
|
})
|
|
@@ -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.resource_level_billing_history_resources_cluster import ResourceLevelBillingHistoryResourcesCluster
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class ResourceLevelClusterBillingDetailsResponseModel(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
ResourceLevelClusterBillingDetailsResponseModel
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
billing_history_cluster_details: Optional[ResourceLevelBillingHistoryResourcesCluster] = None
|
|
31
|
+
message: Optional[StrictStr] = None
|
|
32
|
+
status: Optional[StrictBool] = None
|
|
33
|
+
__properties: ClassVar[List[str]] = ["billing_history_cluster_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 ResourceLevelClusterBillingDetailsResponseModel 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_cluster_details
|
|
75
|
+
if self.billing_history_cluster_details:
|
|
76
|
+
_dict['billing_history_cluster_details'] = self.billing_history_cluster_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 ResourceLevelClusterBillingDetailsResponseModel 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_cluster_details": ResourceLevelBillingHistoryResourcesCluster.from_dict(obj["billing_history_cluster_details"]) if obj.get("billing_history_cluster_details") is not None else None,
|
|
90
|
+
"message": obj.get("message"),
|
|
91
|
+
"status": obj.get("status")
|
|
92
|
+
})
|
|
93
|
+
return _obj
|
|
94
|
+
|
|
95
|
+
|
|
@@ -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.resource_level_billing_history import ResourceLevelBillingHistory
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class ResourceLevelClusterBillingHistoryResponseModel(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
ResourceLevelClusterBillingHistoryResponseModel
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
billing_history_cluster: Optional[ResourceLevelBillingHistory] = None
|
|
31
|
+
message: Optional[StrictStr] = None
|
|
32
|
+
status: Optional[StrictBool] = None
|
|
33
|
+
__properties: ClassVar[List[str]] = ["billing_history_cluster", "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 ResourceLevelClusterBillingHistoryResponseModel 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_cluster
|
|
75
|
+
if self.billing_history_cluster:
|
|
76
|
+
_dict['billing_history_cluster'] = self.billing_history_cluster.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 ResourceLevelClusterBillingHistoryResponseModel 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_cluster": ResourceLevelBillingHistory.from_dict(obj["billing_history_cluster"]) if obj.get("billing_history_cluster") is not None else None,
|
|
90
|
+
"message": obj.get("message"),
|
|
91
|
+
"status": obj.get("status")
|
|
92
|
+
})
|
|
93
|
+
return _obj
|
|
94
|
+
|
|
95
|
+
|
|
@@ -19,18 +19,18 @@ import json
|
|
|
19
19
|
|
|
20
20
|
from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
-
from ..models.
|
|
22
|
+
from ..models.resource_level_graph_billing_detail_volume import ResourceLevelGraphBillingDetailVolume
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
26
|
-
class
|
|
26
|
+
class ResourceLevelClusterGraphBillingDetailsResponseModel(BaseModel):
|
|
27
27
|
"""
|
|
28
|
-
|
|
28
|
+
ResourceLevelClusterGraphBillingDetailsResponseModel
|
|
29
29
|
""" # noqa: E501
|
|
30
|
-
|
|
30
|
+
billing_history_cluster_details: Optional[ResourceLevelGraphBillingDetailVolume] = None
|
|
31
31
|
message: Optional[StrictStr] = None
|
|
32
32
|
status: Optional[StrictBool] = None
|
|
33
|
-
__properties: ClassVar[List[str]] = ["
|
|
33
|
+
__properties: ClassVar[List[str]] = ["billing_history_cluster_details", "message", "status"]
|
|
34
34
|
|
|
35
35
|
model_config = ConfigDict(
|
|
36
36
|
populate_by_name=True,
|
|
@@ -50,7 +50,7 @@ class GetDiscountDetailResponse(BaseModel):
|
|
|
50
50
|
|
|
51
51
|
@classmethod
|
|
52
52
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
53
|
-
"""Create an instance of
|
|
53
|
+
"""Create an instance of ResourceLevelClusterGraphBillingDetailsResponseModel from a JSON string"""
|
|
54
54
|
return cls.from_dict(json.loads(json_str))
|
|
55
55
|
|
|
56
56
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -71,14 +71,14 @@ class GetDiscountDetailResponse(BaseModel):
|
|
|
71
71
|
exclude=excluded_fields,
|
|
72
72
|
exclude_none=True,
|
|
73
73
|
)
|
|
74
|
-
# override the default output from pydantic by calling `to_dict()` of
|
|
75
|
-
if self.
|
|
76
|
-
_dict['
|
|
74
|
+
# override the default output from pydantic by calling `to_dict()` of billing_history_cluster_details
|
|
75
|
+
if self.billing_history_cluster_details:
|
|
76
|
+
_dict['billing_history_cluster_details'] = self.billing_history_cluster_details.to_dict()
|
|
77
77
|
return _dict
|
|
78
78
|
|
|
79
79
|
@classmethod
|
|
80
80
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
81
|
-
"""Create an instance of
|
|
81
|
+
"""Create an instance of ResourceLevelClusterGraphBillingDetailsResponseModel from a dict"""
|
|
82
82
|
if obj is None:
|
|
83
83
|
return None
|
|
84
84
|
|
|
@@ -86,7 +86,7 @@ class GetDiscountDetailResponse(BaseModel):
|
|
|
86
86
|
return cls.model_validate(obj)
|
|
87
87
|
|
|
88
88
|
_obj = cls.model_validate({
|
|
89
|
-
"
|
|
89
|
+
"billing_history_cluster_details": ResourceLevelGraphBillingDetailVolume.from_dict(obj["billing_history_cluster_details"]) if obj.get("billing_history_cluster_details") is not None else None,
|
|
90
90
|
"message": obj.get("message"),
|
|
91
91
|
"status": obj.get("status")
|
|
92
92
|
})
|
hyperstack/models/{organization_object_response.py → resource_level_graph_billing_details_bucket.py}
RENAMED
|
@@ -19,17 +19,19 @@ import json
|
|
|
19
19
|
|
|
20
20
|
from pydantic import BaseModel, ConfigDict, StrictInt
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
-
from ..models.
|
|
22
|
+
from ..models.resource_level_billing_bucket_details_resources import ResourceLevelBillingBucketDetailsResources
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
26
|
-
class
|
|
26
|
+
class ResourceLevelGraphBillingDetailsBucket(BaseModel):
|
|
27
27
|
"""
|
|
28
|
-
|
|
28
|
+
ResourceLevelGraphBillingDetailsBucket
|
|
29
29
|
""" # noqa: E501
|
|
30
|
+
billing_history: Optional[List[ResourceLevelBillingBucketDetailsResources]] = None
|
|
31
|
+
granularity: Optional[StrictInt] = None
|
|
30
32
|
org_id: Optional[StrictInt] = None
|
|
31
|
-
|
|
32
|
-
__properties: ClassVar[List[str]] = ["org_id", "
|
|
33
|
+
total_count: Optional[StrictInt] = None
|
|
34
|
+
__properties: ClassVar[List[str]] = ["billing_history", "granularity", "org_id", "total_count"]
|
|
33
35
|
|
|
34
36
|
model_config = ConfigDict(
|
|
35
37
|
populate_by_name=True,
|
|
@@ -49,7 +51,7 @@ class OrganizationObjectResponse(BaseModel):
|
|
|
49
51
|
|
|
50
52
|
@classmethod
|
|
51
53
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
52
|
-
"""Create an instance of
|
|
54
|
+
"""Create an instance of ResourceLevelGraphBillingDetailsBucket from a JSON string"""
|
|
53
55
|
return cls.from_dict(json.loads(json_str))
|
|
54
56
|
|
|
55
57
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -70,18 +72,18 @@ class OrganizationObjectResponse(BaseModel):
|
|
|
70
72
|
exclude=excluded_fields,
|
|
71
73
|
exclude_none=True,
|
|
72
74
|
)
|
|
73
|
-
# override the default output from pydantic by calling `to_dict()` of each item in
|
|
75
|
+
# override the default output from pydantic by calling `to_dict()` of each item in billing_history (list)
|
|
74
76
|
_items = []
|
|
75
|
-
if self.
|
|
76
|
-
for
|
|
77
|
-
if
|
|
78
|
-
_items.append(
|
|
79
|
-
_dict['
|
|
77
|
+
if self.billing_history:
|
|
78
|
+
for _item_billing_history in self.billing_history:
|
|
79
|
+
if _item_billing_history:
|
|
80
|
+
_items.append(_item_billing_history.to_dict())
|
|
81
|
+
_dict['billing_history'] = _items
|
|
80
82
|
return _dict
|
|
81
83
|
|
|
82
84
|
@classmethod
|
|
83
85
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
84
|
-
"""Create an instance of
|
|
86
|
+
"""Create an instance of ResourceLevelGraphBillingDetailsBucket from a dict"""
|
|
85
87
|
if obj is None:
|
|
86
88
|
return None
|
|
87
89
|
|
|
@@ -89,8 +91,10 @@ class OrganizationObjectResponse(BaseModel):
|
|
|
89
91
|
return cls.model_validate(obj)
|
|
90
92
|
|
|
91
93
|
_obj = cls.model_validate({
|
|
94
|
+
"billing_history": [ResourceLevelBillingBucketDetailsResources.from_dict(_item) for _item in obj["billing_history"]] if obj.get("billing_history") is not None else None,
|
|
95
|
+
"granularity": obj.get("granularity"),
|
|
92
96
|
"org_id": obj.get("org_id"),
|
|
93
|
-
"
|
|
97
|
+
"total_count": obj.get("total_count")
|
|
94
98
|
})
|
|
95
99
|
return _obj
|
|
96
100
|
|
|
@@ -18,16 +18,17 @@ import re # noqa: F401
|
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
20
|
from pydantic import BaseModel, ConfigDict, StrictStr
|
|
21
|
-
from typing import Any, ClassVar, Dict, List
|
|
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 SecondaryColor(BaseModel):
|
|
26
26
|
"""
|
|
27
|
-
|
|
27
|
+
SecondaryColor
|
|
28
28
|
""" # noqa: E501
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
dark: Optional[StrictStr] = None
|
|
30
|
+
light: Optional[StrictStr] = None
|
|
31
|
+
__properties: ClassVar[List[str]] = ["dark", "light"]
|
|
31
32
|
|
|
32
33
|
model_config = ConfigDict(
|
|
33
34
|
populate_by_name=True,
|
|
@@ -47,7 +48,7 @@ class UpdateDiscountsStatusPayload(BaseModel):
|
|
|
47
48
|
|
|
48
49
|
@classmethod
|
|
49
50
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
50
|
-
"""Create an instance of
|
|
51
|
+
"""Create an instance of SecondaryColor from a JSON string"""
|
|
51
52
|
return cls.from_dict(json.loads(json_str))
|
|
52
53
|
|
|
53
54
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -72,7 +73,7 @@ class UpdateDiscountsStatusPayload(BaseModel):
|
|
|
72
73
|
|
|
73
74
|
@classmethod
|
|
74
75
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
75
|
-
"""Create an instance of
|
|
76
|
+
"""Create an instance of SecondaryColor from a dict"""
|
|
76
77
|
if obj is None:
|
|
77
78
|
return None
|
|
78
79
|
|
|
@@ -80,7 +81,8 @@ class UpdateDiscountsStatusPayload(BaseModel):
|
|
|
80
81
|
return cls.model_validate(obj)
|
|
81
82
|
|
|
82
83
|
_obj = cls.model_validate({
|
|
83
|
-
"
|
|
84
|
+
"dark": obj.get("dark"),
|
|
85
|
+
"light": obj.get("light")
|
|
84
86
|
})
|
|
85
87
|
return _obj
|
|
86
88
|
|