gcore 0.16.0__py3-none-any.whl → 0.23.0__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.

Potentially problematic release.


This version of gcore might be problematic. Click here for more details.

Files changed (220) hide show
  1. gcore/_client.py +16 -0
  2. gcore/_models.py +37 -15
  3. gcore/_streaming.py +12 -12
  4. gcore/_utils/_sync.py +3 -31
  5. gcore/_utils/_utils.py +1 -1
  6. gcore/_version.py +1 -1
  7. gcore/resources/cdn/audit_log.py +4 -4
  8. gcore/resources/cdn/cdn.py +120 -21
  9. gcore/resources/cdn/ip_ranges.py +97 -5
  10. gcore/resources/cdn/{logs/logs.py → logs.py} +9 -9
  11. gcore/resources/cdn/resources/resources.py +20 -20
  12. gcore/resources/cdn/statistics.py +56 -58
  13. gcore/resources/cloud/__init__.py +40 -12
  14. gcore/resources/cloud/audit_logs.py +20 -0
  15. gcore/resources/cloud/baremetal/servers.py +48 -14
  16. gcore/resources/cloud/billing_reservations.py +2 -2
  17. gcore/resources/cloud/cloud.py +100 -18
  18. gcore/resources/cloud/databases/__init__.py +33 -0
  19. gcore/resources/cloud/databases/databases.py +102 -0
  20. gcore/resources/cloud/databases/postgres/__init__.py +61 -0
  21. gcore/resources/cloud/databases/postgres/clusters/__init__.py +33 -0
  22. gcore/resources/cloud/databases/postgres/clusters/clusters.py +716 -0
  23. gcore/resources/cloud/databases/postgres/clusters/user_credentials.py +281 -0
  24. gcore/resources/cloud/databases/postgres/configurations.py +169 -0
  25. gcore/resources/cloud/databases/postgres/custom_configurations.py +197 -0
  26. gcore/resources/cloud/databases/postgres/postgres.py +166 -0
  27. gcore/resources/cloud/file_shares/file_shares.py +154 -49
  28. gcore/resources/cloud/floating_ips.py +42 -10
  29. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +70 -10
  30. gcore/resources/cloud/gpu_baremetal_clusters/images.py +40 -6
  31. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +16 -0
  32. gcore/resources/cloud/gpu_virtual_clusters/__init__.py +89 -0
  33. gcore/resources/cloud/gpu_virtual_clusters/flavors.py +211 -0
  34. gcore/resources/cloud/gpu_virtual_clusters/gpu_virtual_clusters.py +1551 -0
  35. gcore/resources/cloud/gpu_virtual_clusters/images.py +582 -0
  36. gcore/resources/cloud/gpu_virtual_clusters/interfaces.py +187 -0
  37. gcore/resources/cloud/gpu_virtual_clusters/servers.py +506 -0
  38. gcore/resources/cloud/gpu_virtual_clusters/volumes.py +187 -0
  39. gcore/resources/cloud/inference/deployments/deployments.py +52 -4
  40. gcore/resources/cloud/instances/images.py +72 -18
  41. gcore/resources/cloud/instances/instances.py +110 -18
  42. gcore/resources/cloud/instances/interfaces.py +12 -0
  43. gcore/resources/cloud/k8s/__init__.py +12 -12
  44. gcore/resources/cloud/k8s/clusters/clusters.py +25 -25
  45. gcore/resources/cloud/k8s/clusters/pools/pools.py +14 -14
  46. gcore/resources/cloud/k8s/k8s.py +24 -24
  47. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +1420 -218
  48. gcore/resources/cloud/load_balancers/l7_policies/rules.py +134 -22
  49. gcore/resources/cloud/load_balancers/listeners.py +77 -6
  50. gcore/resources/cloud/load_balancers/load_balancers.py +92 -14
  51. gcore/resources/cloud/load_balancers/pools/pools.py +52 -4
  52. gcore/resources/cloud/networks/networks.py +30 -10
  53. gcore/resources/cloud/networks/subnets.py +26 -10
  54. gcore/resources/cloud/placement_groups.py +8 -0
  55. gcore/resources/cloud/projects.py +99 -119
  56. gcore/resources/cloud/quotas/requests.py +0 -8
  57. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +18 -0
  58. gcore/resources/cloud/secrets.py +16 -0
  59. gcore/resources/cloud/security_groups/security_groups.py +38 -12
  60. gcore/resources/cloud/ssh_keys.py +10 -0
  61. gcore/resources/cloud/tasks.py +22 -7
  62. gcore/resources/cloud/volumes.py +65 -23
  63. gcore/resources/dns/zones/rrsets.py +10 -10
  64. gcore/resources/dns/zones/zones.py +2 -2
  65. gcore/resources/security/bgp_announces.py +0 -4
  66. gcore/resources/security/profiles.py +31 -7
  67. gcore/resources/storage/credentials.py +0 -28
  68. gcore/resources/storage/storage.py +2 -2
  69. gcore/types/cdn/__init__.py +5 -0
  70. gcore/types/cdn/alibaba_regions.py +22 -0
  71. gcore/types/cdn/audit_log_list_params.py +2 -2
  72. gcore/types/cdn/aws_regions.py +22 -0
  73. gcore/types/cdn/cdn_list_purge_statuses_response.py +10 -0
  74. gcore/types/cdn/cdn_resource.py +17 -12
  75. gcore/types/cdn/ip_range_list_ips_params.py +19 -0
  76. gcore/types/cdn/ip_range_list_params.py +19 -0
  77. gcore/types/cdn/resource_create_params.py +17 -12
  78. gcore/types/cdn/resource_purge_params.py +4 -4
  79. gcore/types/cdn/resource_replace_params.py +17 -12
  80. gcore/types/cdn/resource_update_params.py +17 -12
  81. gcore/types/cdn/resource_usage_stats.py +16 -15
  82. gcore/types/cdn/resources/cdn_resource_rule.py +15 -10
  83. gcore/types/cdn/resources/rule_create_params.py +15 -10
  84. gcore/types/cdn/resources/rule_replace_params.py +15 -10
  85. gcore/types/cdn/resources/rule_update_params.py +15 -10
  86. gcore/types/cdn/rule_template.py +15 -10
  87. gcore/types/cdn/rule_template_create_params.py +15 -10
  88. gcore/types/cdn/rule_template_replace_params.py +15 -10
  89. gcore/types/cdn/rule_template_update_params.py +15 -10
  90. gcore/types/cdn/statistic_get_logs_usage_aggregated_params.py +4 -1
  91. gcore/types/cdn/statistic_get_logs_usage_series_params.py +5 -12
  92. gcore/types/cdn/statistic_get_resource_usage_aggregated_params.py +10 -21
  93. gcore/types/cdn/statistic_get_resource_usage_series_params.py +6 -1
  94. gcore/types/cdn/statistic_get_shield_usage_aggregated_params.py +5 -2
  95. gcore/types/cdn/statistic_get_shield_usage_series_params.py +3 -0
  96. gcore/types/cloud/__init__.py +9 -3
  97. gcore/types/cloud/audit_log_entry.py +9 -3
  98. gcore/types/cloud/audit_log_list_params.py +12 -0
  99. gcore/types/cloud/baremetal/server_create_params.py +7 -7
  100. gcore/types/cloud/baremetal_flavor.py +0 -6
  101. gcore/types/cloud/billing_reservation_list_params.py +1 -1
  102. gcore/types/cloud/blackhole_port.py +4 -1
  103. gcore/types/cloud/databases/postgres/__init__.py +12 -0
  104. gcore/types/cloud/databases/postgres/cluster_create_params.py +108 -0
  105. gcore/types/cloud/databases/postgres/cluster_list_params.py +19 -0
  106. gcore/types/cloud/databases/postgres/cluster_update_params.py +102 -0
  107. gcore/types/cloud/databases/postgres/clusters/__init__.py +5 -0
  108. gcore/types/cloud/databases/postgres/clusters/postgres_user_credentials.py +13 -0
  109. gcore/types/cloud/databases/postgres/custom_configuration_validate_params.py +19 -0
  110. gcore/types/cloud/databases/postgres/pg_conf_validation.py +15 -0
  111. gcore/types/cloud/databases/postgres/postgres_cluster.py +118 -0
  112. gcore/types/cloud/databases/postgres/postgres_cluster_short.py +22 -0
  113. gcore/types/cloud/databases/postgres/postgres_configuration.py +31 -0
  114. gcore/types/cloud/file_share_create_params.py +8 -8
  115. gcore/types/cloud/file_share_update_params.py +7 -2
  116. gcore/types/cloud/floating_ip.py +5 -1
  117. gcore/types/cloud/floating_ip_create_params.py +4 -4
  118. gcore/types/cloud/floating_ip_detailed.py +5 -1
  119. gcore/types/cloud/floating_ip_list_params.py +8 -0
  120. gcore/types/cloud/floating_ip_update_params.py +7 -2
  121. gcore/types/cloud/gpu_baremetal_cluster.py +18 -3
  122. gcore/types/cloud/gpu_baremetal_cluster_action_params.py +7 -2
  123. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +16 -4
  124. gcore/types/cloud/gpu_baremetal_clusters/gpu_baremetal_cluster_server.py +5 -2
  125. gcore/types/cloud/gpu_baremetal_clusters/image_upload_params.py +4 -4
  126. gcore/types/cloud/gpu_image.py +9 -0
  127. gcore/types/cloud/gpu_virtual_cluster.py +189 -0
  128. gcore/types/cloud/gpu_virtual_cluster_action_params.py +127 -0
  129. gcore/types/cloud/gpu_virtual_cluster_create_params.py +213 -0
  130. gcore/types/cloud/gpu_virtual_cluster_delete_params.py +41 -0
  131. gcore/types/cloud/gpu_virtual_cluster_list_params.py +21 -0
  132. gcore/types/cloud/gpu_virtual_cluster_update_params.py +18 -0
  133. gcore/types/cloud/gpu_virtual_clusters/__init__.py +16 -0
  134. gcore/types/cloud/gpu_virtual_clusters/flavor_list_params.py +21 -0
  135. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_cluster_server.py +77 -0
  136. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_cluster_server_list.py +16 -0
  137. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_cluster_volume.py +64 -0
  138. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_cluster_volume_list.py +16 -0
  139. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_flavor.py +155 -0
  140. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_flavor_list.py +16 -0
  141. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_interface.py +190 -0
  142. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_interface_list.py +16 -0
  143. gcore/types/cloud/gpu_virtual_clusters/image_upload_params.py +56 -0
  144. gcore/types/cloud/gpu_virtual_clusters/server_delete_params.py +44 -0
  145. gcore/types/cloud/gpu_virtual_clusters/server_list_params.py +75 -0
  146. gcore/types/cloud/image.py +9 -0
  147. gcore/types/cloud/inference/deployment_create_params.py +1 -1
  148. gcore/types/cloud/inference/deployment_update_params.py +1 -1
  149. gcore/types/cloud/inference/inference_deployment.py +1 -1
  150. gcore/types/cloud/instance_create_params.py +27 -27
  151. gcore/types/cloud/instance_update_params.py +7 -2
  152. gcore/types/cloud/instances/image_create_from_volume_params.py +4 -4
  153. gcore/types/cloud/instances/image_update_params.py +4 -4
  154. gcore/types/cloud/instances/image_upload_params.py +4 -4
  155. gcore/types/cloud/k8s/__init__.py +4 -4
  156. gcore/types/cloud/k8s/cluster_update_params.py +5 -5
  157. gcore/types/cloud/k8s/clusters/__init__.py +2 -2
  158. gcore/types/cloud/k8s/clusters/k8s_cluster_pool.py +2 -2
  159. gcore/types/cloud/k8s/clusters/k8s_cluster_pool_list.py +4 -4
  160. gcore/types/cloud/k8s/k8s_cluster.py +4 -4
  161. gcore/types/cloud/k8s/k8s_cluster_certificate.py +2 -2
  162. gcore/types/cloud/k8s/k8s_cluster_kubeconfig.py +14 -2
  163. gcore/types/cloud/k8s/k8s_cluster_list.py +4 -4
  164. gcore/types/cloud/k8s_cluster_version.py +2 -2
  165. gcore/types/cloud/k8s_cluster_version_list.py +4 -4
  166. gcore/types/cloud/load_balancer_create_params.py +14 -8
  167. gcore/types/cloud/load_balancer_flavor_detail.py +2 -2
  168. gcore/types/cloud/load_balancer_l7_policy.py +29 -16
  169. gcore/types/cloud/load_balancer_l7_policy_list.py +3 -3
  170. gcore/types/cloud/load_balancer_l7_rule.py +14 -23
  171. gcore/types/cloud/load_balancer_l7_rule_list.py +3 -3
  172. gcore/types/cloud/load_balancer_listener_detail.py +2 -2
  173. gcore/types/cloud/load_balancer_update_params.py +7 -2
  174. gcore/types/cloud/load_balancers/__init__.py +1 -0
  175. gcore/types/cloud/load_balancers/l7_policies/rule_create_params.py +5 -10
  176. gcore/types/cloud/load_balancers/l7_policies/rule_replace_params.py +7 -11
  177. gcore/types/cloud/load_balancers/l7_policy_create_params.py +102 -18
  178. gcore/types/cloud/load_balancers/l7_policy_replace_params.py +94 -16
  179. gcore/types/cloud/load_balancers/listener_create_params.py +4 -1
  180. gcore/types/cloud/load_balancers/listener_delete_params.py +18 -0
  181. gcore/types/cloud/load_balancers/listener_update_params.py +4 -1
  182. gcore/types/cloud/load_balancers/pool_create_params.py +1 -1
  183. gcore/types/cloud/network_create_params.py +4 -4
  184. gcore/types/cloud/network_update_params.py +7 -2
  185. gcore/types/cloud/networks/subnet_create_params.py +4 -4
  186. gcore/types/cloud/networks/subnet_update_params.py +7 -2
  187. gcore/types/cloud/project_create_params.py +0 -6
  188. gcore/types/cloud/{project_replace_params.py → project_update_params.py} +2 -2
  189. gcore/types/cloud/quotas/request_create_params.py +0 -3
  190. gcore/types/cloud/region.py +3 -3
  191. gcore/types/cloud/security_group.py +8 -1
  192. gcore/types/cloud/security_group_create_params.py +7 -5
  193. gcore/types/cloud/security_group_list_params.py +6 -4
  194. gcore/types/cloud/security_group_update_params.py +7 -2
  195. gcore/types/cloud/ssh_key_list_params.py +7 -0
  196. gcore/types/cloud/tag.py +2 -2
  197. gcore/types/cloud/task_id_list.py +3 -3
  198. gcore/types/cloud/volume_create_params.py +12 -12
  199. gcore/types/cloud/volume_update_params.py +7 -2
  200. gcore/types/dns/zone_list_params.py +1 -1
  201. gcore/types/iam/api_token_create.py +70 -1
  202. gcore/types/security/bgp_announce_list_params.py +0 -2
  203. gcore/types/security/client_profile.py +1 -0
  204. gcore/types/security/profile_create_params.py +4 -2
  205. gcore/types/security/profile_recreate_params.py +4 -2
  206. gcore/types/security/profile_replace_params.py +4 -2
  207. gcore/types/storage/credential_recreate_params.py +0 -17
  208. gcore/types/storage/storage.py +1 -1
  209. gcore/types/storage/storage_create_params.py +1 -1
  210. gcore/types/streaming/stream.py +3 -2
  211. gcore/types/streaming/video.py +1 -1
  212. gcore/types/waap/domains/custom_rule_create_params.py +1 -1
  213. gcore/types/waap/domains/custom_rule_update_params.py +1 -1
  214. gcore/types/waap/domains/waap_custom_rule.py +1 -1
  215. {gcore-0.16.0.dist-info → gcore-0.23.0.dist-info}/METADATA +14 -14
  216. {gcore-0.16.0.dist-info → gcore-0.23.0.dist-info}/RECORD +219 -168
  217. gcore/resources/cdn/logs/__init__.py +0 -19
  218. /gcore/types/{cdn/logs → cloud/databases}/__init__.py +0 -0
  219. {gcore-0.16.0.dist-info → gcore-0.23.0.dist-info}/WHEEL +0 -0
  220. {gcore-0.16.0.dist-info → gcore-0.23.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,77 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from ..tag import Tag
8
+ from ...._models import BaseModel
9
+
10
+ __all__ = ["GPUVirtualClusterServer", "SecurityGroup"]
11
+
12
+
13
+ class SecurityGroup(BaseModel):
14
+ id: str
15
+ """Security group ID"""
16
+
17
+ name: str
18
+ """Security group name"""
19
+
20
+
21
+ class GPUVirtualClusterServer(BaseModel):
22
+ id: str
23
+ """Server unique identifier"""
24
+
25
+ created_at: datetime
26
+ """Server creation date and time"""
27
+
28
+ flavor: str
29
+ """Unique flavor identifier"""
30
+
31
+ image_id: Optional[str] = None
32
+ """Server's image UUID"""
33
+
34
+ ip_addresses: List[str]
35
+ """List of IP addresses"""
36
+
37
+ name: str
38
+ """Server's name generated using cluster's name"""
39
+
40
+ security_groups: List[SecurityGroup]
41
+ """Security groups"""
42
+
43
+ ssh_key_name: Optional[str] = None
44
+ """SSH key pair assigned to the server"""
45
+
46
+ status: Literal[
47
+ "ACTIVE",
48
+ "BUILD",
49
+ "DELETED",
50
+ "ERROR",
51
+ "HARD_REBOOT",
52
+ "MIGRATING",
53
+ "PASSWORD",
54
+ "PAUSED",
55
+ "REBOOT",
56
+ "REBUILD",
57
+ "RESCUE",
58
+ "RESIZE",
59
+ "REVERT_RESIZE",
60
+ "SHELVED",
61
+ "SHELVED_OFFLOADED",
62
+ "SHUTOFF",
63
+ "SOFT_DELETED",
64
+ "SUSPENDED",
65
+ "UNKNOWN",
66
+ "VERIFY_RESIZE",
67
+ ]
68
+ """Current server status"""
69
+
70
+ tags: List[Tag]
71
+ """User defined tags"""
72
+
73
+ task_id: Optional[str] = None
74
+ """Identifier of the task currently modifying the GPU cluster"""
75
+
76
+ updated_at: datetime
77
+ """Server update date and time"""
@@ -0,0 +1,16 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from ...._models import BaseModel
6
+ from .gpu_virtual_cluster_server import GPUVirtualClusterServer
7
+
8
+ __all__ = ["GPUVirtualClusterServerList"]
9
+
10
+
11
+ class GPUVirtualClusterServerList(BaseModel):
12
+ count: int
13
+ """Number of objects"""
14
+
15
+ results: List[GPUVirtualClusterServer]
16
+ """Objects"""
@@ -0,0 +1,64 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from ..tag import Tag
8
+ from ...._models import BaseModel
9
+
10
+ __all__ = ["GPUVirtualClusterVolume"]
11
+
12
+
13
+ class GPUVirtualClusterVolume(BaseModel):
14
+ id: str
15
+ """Volume unique identifier"""
16
+
17
+ bootable: bool
18
+ """True if this is bootable volume"""
19
+
20
+ created_at: datetime
21
+ """Volume creation date and time"""
22
+
23
+ name: str
24
+ """User defined name"""
25
+
26
+ root_fs: bool
27
+ """True if this volume contains root file system"""
28
+
29
+ server_id: str
30
+ """Server UUID"""
31
+
32
+ size: int
33
+ """Volume size in GiB"""
34
+
35
+ status: Literal[
36
+ "attaching",
37
+ "available",
38
+ "awaiting-transfer",
39
+ "backing-up",
40
+ "creating",
41
+ "deleting",
42
+ "detaching",
43
+ "downloading",
44
+ "error",
45
+ "error_backing-up",
46
+ "error_deleting",
47
+ "error_extending",
48
+ "error_restoring",
49
+ "extending",
50
+ "in-use",
51
+ "maintenance",
52
+ "reserved",
53
+ "restoring-backup",
54
+ "retyping",
55
+ "reverting",
56
+ "uploading",
57
+ ]
58
+ """Current volume status"""
59
+
60
+ tags: List[Tag]
61
+ """User defined tags"""
62
+
63
+ type: str
64
+ """Volume type"""
@@ -0,0 +1,16 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from ...._models import BaseModel
6
+ from .gpu_virtual_cluster_volume import GPUVirtualClusterVolume
7
+
8
+ __all__ = ["GPUVirtualClusterVolumeList"]
9
+
10
+
11
+ class GPUVirtualClusterVolumeList(BaseModel):
12
+ count: int
13
+ """Number of objects"""
14
+
15
+ results: List[GPUVirtualClusterVolume]
16
+ """Objects"""
@@ -0,0 +1,155 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Union, Optional
4
+ from typing_extensions import Literal, TypeAlias
5
+
6
+ from ...._models import BaseModel
7
+
8
+ __all__ = [
9
+ "GPUVirtualFlavor",
10
+ "GPUVirtualFlavorSerializerWithoutPrice",
11
+ "GPUVirtualFlavorSerializerWithoutPriceHardwareDescription",
12
+ "GPUVirtualFlavorSerializerWithoutPriceHardwareProperties",
13
+ "GPUVirtualFlavorSerializerWithoutPriceSupportedFeatures",
14
+ "GPUVirtualFlavorSerializerWithPrices",
15
+ "GPUVirtualFlavorSerializerWithPricesHardwareDescription",
16
+ "GPUVirtualFlavorSerializerWithPricesHardwareProperties",
17
+ "GPUVirtualFlavorSerializerWithPricesPrice",
18
+ "GPUVirtualFlavorSerializerWithPricesSupportedFeatures",
19
+ ]
20
+
21
+
22
+ class GPUVirtualFlavorSerializerWithoutPriceHardwareDescription(BaseModel):
23
+ gpu: Optional[str] = None
24
+ """Human-readable GPU description"""
25
+
26
+ local_storage: Optional[int] = None
27
+ """Local storage capacity in GiB"""
28
+
29
+ ram: Optional[int] = None
30
+ """RAM size in MiB"""
31
+
32
+ vcpus: Optional[int] = None
33
+ """Virtual CPU count"""
34
+
35
+
36
+ class GPUVirtualFlavorSerializerWithoutPriceHardwareProperties(BaseModel):
37
+ gpu_count: Optional[int] = None
38
+ """The total count of available GPUs."""
39
+
40
+ gpu_manufacturer: Optional[str] = None
41
+ """The manufacturer of the graphics processing GPU"""
42
+
43
+ gpu_model: Optional[str] = None
44
+ """GPU model"""
45
+
46
+ nic_eth: Optional[str] = None
47
+ """The configuration of the Ethernet ports"""
48
+
49
+ nic_ib: Optional[str] = None
50
+ """The configuration of the InfiniBand ports"""
51
+
52
+
53
+ class GPUVirtualFlavorSerializerWithoutPriceSupportedFeatures(BaseModel):
54
+ security_groups: bool
55
+
56
+
57
+ class GPUVirtualFlavorSerializerWithoutPrice(BaseModel):
58
+ architecture: Optional[str] = None
59
+ """Flavor architecture type"""
60
+
61
+ capacity: int
62
+ """Number of available instances of given flavor"""
63
+
64
+ disabled: bool
65
+ """If the flavor is disabled, new resources cannot be created using this flavor."""
66
+
67
+ hardware_description: GPUVirtualFlavorSerializerWithoutPriceHardwareDescription
68
+ """Additional virtual hardware description"""
69
+
70
+ hardware_properties: GPUVirtualFlavorSerializerWithoutPriceHardwareProperties
71
+ """Additional virtual hardware properties"""
72
+
73
+ name: str
74
+ """Flavor name"""
75
+
76
+ supported_features: GPUVirtualFlavorSerializerWithoutPriceSupportedFeatures
77
+ """Set of enabled features based on the flavor's type and configuration"""
78
+
79
+
80
+ class GPUVirtualFlavorSerializerWithPricesHardwareDescription(BaseModel):
81
+ gpu: Optional[str] = None
82
+ """Human-readable GPU description"""
83
+
84
+ local_storage: Optional[int] = None
85
+ """Local storage capacity in GiB"""
86
+
87
+ ram: Optional[int] = None
88
+ """RAM size in MiB"""
89
+
90
+ vcpus: Optional[int] = None
91
+ """Virtual CPU count"""
92
+
93
+
94
+ class GPUVirtualFlavorSerializerWithPricesHardwareProperties(BaseModel):
95
+ gpu_count: Optional[int] = None
96
+ """The total count of available GPUs."""
97
+
98
+ gpu_manufacturer: Optional[str] = None
99
+ """The manufacturer of the graphics processing GPU"""
100
+
101
+ gpu_model: Optional[str] = None
102
+ """GPU model"""
103
+
104
+ nic_eth: Optional[str] = None
105
+ """The configuration of the Ethernet ports"""
106
+
107
+ nic_ib: Optional[str] = None
108
+ """The configuration of the InfiniBand ports"""
109
+
110
+
111
+ class GPUVirtualFlavorSerializerWithPricesPrice(BaseModel):
112
+ currency_code: Optional[str] = None
113
+ """Currency code. Shown if the `include_prices` query parameter if set to true"""
114
+
115
+ price_per_hour: Optional[float] = None
116
+ """Price per hour. Shown if the `include_prices` query parameter if set to true"""
117
+
118
+ price_per_month: Optional[float] = None
119
+ """Price per month. Shown if the `include_prices` query parameter if set to true"""
120
+
121
+ price_status: Optional[Literal["error", "hide", "show"]] = None
122
+ """Price status for the UI"""
123
+
124
+
125
+ class GPUVirtualFlavorSerializerWithPricesSupportedFeatures(BaseModel):
126
+ security_groups: bool
127
+
128
+
129
+ class GPUVirtualFlavorSerializerWithPrices(BaseModel):
130
+ architecture: Optional[str] = None
131
+ """Flavor architecture type"""
132
+
133
+ capacity: int
134
+ """Number of available instances of given flavor"""
135
+
136
+ disabled: bool
137
+ """If the flavor is disabled, new resources cannot be created using this flavor."""
138
+
139
+ hardware_description: GPUVirtualFlavorSerializerWithPricesHardwareDescription
140
+ """Additional virtual hardware description"""
141
+
142
+ hardware_properties: GPUVirtualFlavorSerializerWithPricesHardwareProperties
143
+ """Additional virtual hardware properties"""
144
+
145
+ name: str
146
+ """Flavor name"""
147
+
148
+ price: GPUVirtualFlavorSerializerWithPricesPrice
149
+ """Flavor price."""
150
+
151
+ supported_features: GPUVirtualFlavorSerializerWithPricesSupportedFeatures
152
+ """Set of enabled features based on the flavor's type and configuration"""
153
+
154
+
155
+ GPUVirtualFlavor: TypeAlias = Union[GPUVirtualFlavorSerializerWithoutPrice, GPUVirtualFlavorSerializerWithPrices]
@@ -0,0 +1,16 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from ...._models import BaseModel
6
+ from .gpu_virtual_flavor import GPUVirtualFlavor
7
+
8
+ __all__ = ["GPUVirtualFlavorList"]
9
+
10
+
11
+ class GPUVirtualFlavorList(BaseModel):
12
+ count: int
13
+ """Number of objects"""
14
+
15
+ results: List[GPUVirtualFlavor]
16
+ """Objects"""
@@ -0,0 +1,190 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+
6
+ from ..tag import Tag
7
+ from ..route import Route
8
+ from ...._models import BaseModel
9
+ from ..ip_version import IPVersion
10
+ from ..floating_ip_status import FloatingIPStatus
11
+
12
+ __all__ = ["GPUVirtualInterface", "FloatingIP", "IPAssignment", "Network", "NetworkSubnet"]
13
+
14
+
15
+ class FloatingIP(BaseModel):
16
+ id: str
17
+ """Floating IP ID"""
18
+
19
+ created_at: datetime
20
+ """Datetime when the floating IP was created"""
21
+
22
+ fixed_ip_address: Optional[str] = None
23
+ """IP address of the port the floating IP is attached to"""
24
+
25
+ floating_ip_address: Optional[str] = None
26
+ """IP Address of the floating IP"""
27
+
28
+ port_id: Optional[str] = None
29
+ """Port ID the floating IP is attached to.
30
+
31
+ The `fixed_ip_address` is the IP address of the port.
32
+ """
33
+
34
+ router_id: Optional[str] = None
35
+ """Router ID"""
36
+
37
+ status: Optional[FloatingIPStatus] = None
38
+ """Floating IP status"""
39
+
40
+ tags: List[Tag]
41
+ """List of key-value tags associated with the resource.
42
+
43
+ A tag is a key-value pair that can be associated with a resource, enabling
44
+ efficient filtering and grouping for better organization and management. Some
45
+ tags are read-only and cannot be modified by the user. Tags are also integrated
46
+ with cost reports, allowing cost data to be filtered based on tag keys or
47
+ values.
48
+ """
49
+
50
+ updated_at: datetime
51
+ """Datetime when the floating IP was last updated"""
52
+
53
+
54
+ class IPAssignment(BaseModel):
55
+ ip_address: str
56
+ """The IP address assigned to the port from the specified subnet"""
57
+
58
+ subnet_id: str
59
+ """ID of the subnet that allocated the IP"""
60
+
61
+
62
+ class NetworkSubnet(BaseModel):
63
+ id: str
64
+ """Subnet id."""
65
+
66
+ available_ips: Optional[int] = None
67
+ """Number of available ips in subnet"""
68
+
69
+ cidr: str
70
+ """CIDR"""
71
+
72
+ created_at: datetime
73
+ """Datetime when the subnet was created"""
74
+
75
+ dns_nameservers: Optional[List[str]] = None
76
+ """List IP addresses of a DNS resolver reachable from the network"""
77
+
78
+ enable_dhcp: bool
79
+ """Indicates whether DHCP is enabled for this subnet.
80
+
81
+ If true, IP addresses will be assigned automatically
82
+ """
83
+
84
+ gateway_ip: Optional[str] = None
85
+ """Default GW IPv4 address, advertised in DHCP routes of this subnet.
86
+
87
+ If null, no gateway is advertised by this subnet.
88
+ """
89
+
90
+ has_router: bool
91
+ """Deprecated. Always returns `false`."""
92
+
93
+ host_routes: Optional[List[Route]] = None
94
+ """List of custom static routes to advertise via DHCP."""
95
+
96
+ ip_version: IPVersion
97
+ """IP version used by the subnet (IPv4 or IPv6)"""
98
+
99
+ name: str
100
+ """Subnet name"""
101
+
102
+ network_id: str
103
+ """Network ID"""
104
+
105
+ tags: List[Tag]
106
+ """List of key-value tags associated with the resource.
107
+
108
+ A tag is a key-value pair that can be associated with a resource, enabling
109
+ efficient filtering and grouping for better organization and management. Some
110
+ tags are read-only and cannot be modified by the user. Tags are also integrated
111
+ with cost reports, allowing cost data to be filtered based on tag keys or
112
+ values.
113
+ """
114
+
115
+ total_ips: Optional[int] = None
116
+ """Total number of ips in subnet"""
117
+
118
+ updated_at: datetime
119
+ """Datetime when the subnet was last updated"""
120
+
121
+
122
+ class Network(BaseModel):
123
+ id: str
124
+ """Network ID"""
125
+
126
+ created_at: datetime
127
+ """Datetime when the network was created"""
128
+
129
+ external: bool
130
+ """True if the network `router:external` attribute"""
131
+
132
+ mtu: int
133
+ """MTU (maximum transmission unit)"""
134
+
135
+ name: str
136
+ """Network name"""
137
+
138
+ port_security_enabled: bool
139
+ """
140
+ Indicates `port_security_enabled` status of all newly created in the network
141
+ ports.
142
+ """
143
+
144
+ segmentation_id: Optional[int] = None
145
+ """Id of network segment"""
146
+
147
+ shared: bool
148
+ """True when the network is shared with your project by external owner"""
149
+
150
+ subnets: Optional[List[NetworkSubnet]] = None
151
+ """List of subnetworks"""
152
+
153
+ tags: List[Tag]
154
+ """List of key-value tags associated with the resource.
155
+
156
+ A tag is a key-value pair that can be associated with a resource, enabling
157
+ efficient filtering and grouping for better organization and management. Some
158
+ tags are read-only and cannot be modified by the user. Tags are also integrated
159
+ with cost reports, allowing cost data to be filtered based on tag keys or
160
+ values.
161
+ """
162
+
163
+ type: str
164
+ """Network type (vlan, vxlan)"""
165
+
166
+ updated_at: datetime
167
+ """Datetime when the network was last updated"""
168
+
169
+
170
+ class GPUVirtualInterface(BaseModel):
171
+ floating_ips: List[FloatingIP]
172
+ """Bodies of floatingips that are NAT-ing ips of this port"""
173
+
174
+ ip_assignments: List[IPAssignment]
175
+ """IP addresses assigned to this port"""
176
+
177
+ mac_address: Optional[str] = None
178
+ """MAC address of the virtual port"""
179
+
180
+ network: Network
181
+ """Body of the network this port is attached to"""
182
+
183
+ network_id: str
184
+ """ID of the network the port is attached to"""
185
+
186
+ port_id: str
187
+ """ID of virtual ethernet port object"""
188
+
189
+ port_security_enabled: bool
190
+ """Port security status"""
@@ -0,0 +1,16 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from ...._models import BaseModel
6
+ from .gpu_virtual_interface import GPUVirtualInterface
7
+
8
+ __all__ = ["GPUVirtualInterfaceList"]
9
+
10
+
11
+ class GPUVirtualInterfaceList(BaseModel):
12
+ count: int
13
+ """Number of objects"""
14
+
15
+ results: List[GPUVirtualInterface]
16
+ """Objects"""
@@ -0,0 +1,56 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Dict, Optional
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ __all__ = ["ImageUploadParams"]
9
+
10
+
11
+ class ImageUploadParams(TypedDict, total=False):
12
+ project_id: int
13
+ """Project ID"""
14
+
15
+ region_id: int
16
+ """Region ID"""
17
+
18
+ name: Required[str]
19
+ """Image name"""
20
+
21
+ url: Required[str]
22
+ """Image URL"""
23
+
24
+ architecture: Optional[Literal["aarch64", "x86_64"]]
25
+ """Image architecture type: aarch64, `x86_64`"""
26
+
27
+ cow_format: bool
28
+ """
29
+ When True, image cannot be deleted unless all volumes, created from it, are
30
+ deleted.
31
+ """
32
+
33
+ hw_firmware_type: Optional[Literal["bios", "uefi"]]
34
+ """Specifies the type of firmware with which to boot the guest."""
35
+
36
+ os_distro: Optional[str]
37
+ """OS Distribution, i.e. Debian, CentOS, Ubuntu, CoreOS etc."""
38
+
39
+ os_type: Optional[Literal["linux", "windows"]]
40
+ """The operating system installed on the image. Linux by default"""
41
+
42
+ os_version: Optional[str]
43
+ """OS version, i.e. 19.04 (for Ubuntu) or 9.4 for Debian"""
44
+
45
+ ssh_key: Literal["allow", "deny", "required"]
46
+ """Permission to use a ssh key in instances"""
47
+
48
+ tags: Dict[str, str]
49
+ """Key-value tags to associate with the resource.
50
+
51
+ A tag is a key-value pair that can be associated with a resource, enabling
52
+ efficient filtering and grouping for better organization and management. Both
53
+ tag keys and values have a maximum length of 255 characters. Some tags are
54
+ read-only and cannot be modified by the user. Tags are also integrated with cost
55
+ reports, allowing cost data to be filtered based on tag keys or values.
56
+ """
@@ -0,0 +1,44 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ from ...._types import SequenceNotStr
8
+
9
+ __all__ = ["ServerDeleteParams"]
10
+
11
+
12
+ class ServerDeleteParams(TypedDict, total=False):
13
+ project_id: int
14
+ """Project ID"""
15
+
16
+ region_id: int
17
+ """Region ID"""
18
+
19
+ cluster_id: Required[str]
20
+ """Cluster unique identifier"""
21
+
22
+ all_floating_ips: bool
23
+ """
24
+ Flag indicating whether the floating ips associated with server / cluster are
25
+ deleted
26
+ """
27
+
28
+ all_reserved_fixed_ips: bool
29
+ """
30
+ Flag indicating whether the reserved fixed ips associated with server / cluster
31
+ are deleted
32
+ """
33
+
34
+ all_volumes: bool
35
+ """Flag indicating whether all attached volumes are deleted"""
36
+
37
+ floating_ip_ids: SequenceNotStr[str]
38
+ """Optional list of floating ips to be deleted"""
39
+
40
+ reserved_fixed_ip_ids: SequenceNotStr[str]
41
+ """Optional list of reserved fixed ips to be deleted"""
42
+
43
+ volume_ids: SequenceNotStr[str]
44
+ """Optional list of volumes to be deleted"""