gcore 0.1.0a1__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 (420) hide show
  1. gcore/__init__.py +84 -0
  2. gcore/_base_client.py +1943 -0
  3. gcore/_client.py +484 -0
  4. gcore/_compat.py +219 -0
  5. gcore/_constants.py +16 -0
  6. gcore/_exceptions.py +108 -0
  7. gcore/_files.py +123 -0
  8. gcore/_models.py +803 -0
  9. gcore/_qs.py +150 -0
  10. gcore/_resource.py +43 -0
  11. gcore/_response.py +830 -0
  12. gcore/_streaming.py +333 -0
  13. gcore/_types.py +217 -0
  14. gcore/_utils/__init__.py +57 -0
  15. gcore/_utils/_logs.py +25 -0
  16. gcore/_utils/_proxy.py +62 -0
  17. gcore/_utils/_reflection.py +42 -0
  18. gcore/_utils/_streams.py +12 -0
  19. gcore/_utils/_sync.py +86 -0
  20. gcore/_utils/_transform.py +447 -0
  21. gcore/_utils/_typing.py +151 -0
  22. gcore/_utils/_utils.py +422 -0
  23. gcore/_version.py +4 -0
  24. gcore/lib/.keep +4 -0
  25. gcore/lib/polling.py +19 -0
  26. gcore/pagination.py +70 -0
  27. gcore/py.typed +0 -0
  28. gcore/resources/__init__.py +19 -0
  29. gcore/resources/cloud/__init__.py +327 -0
  30. gcore/resources/cloud/baremetal/__init__.py +61 -0
  31. gcore/resources/cloud/baremetal/baremetal.py +166 -0
  32. gcore/resources/cloud/baremetal/flavors.py +371 -0
  33. gcore/resources/cloud/baremetal/images.py +238 -0
  34. gcore/resources/cloud/baremetal/servers.py +808 -0
  35. gcore/resources/cloud/billing_reservations.py +362 -0
  36. gcore/resources/cloud/cloud.py +774 -0
  37. gcore/resources/cloud/file_shares/__init__.py +33 -0
  38. gcore/resources/cloud/file_shares/access_rules.py +434 -0
  39. gcore/resources/cloud/file_shares/file_shares.py +994 -0
  40. gcore/resources/cloud/floating_ips.py +765 -0
  41. gcore/resources/cloud/gpu_baremetal_clusters/__init__.py +75 -0
  42. gcore/resources/cloud/gpu_baremetal_clusters/flavors.py +211 -0
  43. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +1143 -0
  44. gcore/resources/cloud/gpu_baremetal_clusters/images.py +581 -0
  45. gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py +175 -0
  46. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +1098 -0
  47. gcore/resources/cloud/inference/__init__.py +89 -0
  48. gcore/resources/cloud/inference/deployments/__init__.py +33 -0
  49. gcore/resources/cloud/inference/deployments/deployments.py +1187 -0
  50. gcore/resources/cloud/inference/deployments/logs.py +235 -0
  51. gcore/resources/cloud/inference/flavors.py +280 -0
  52. gcore/resources/cloud/inference/inference.py +295 -0
  53. gcore/resources/cloud/inference/models.py +289 -0
  54. gcore/resources/cloud/inference/registry_credentials.py +649 -0
  55. gcore/resources/cloud/inference/secrets.py +629 -0
  56. gcore/resources/cloud/instances/__init__.py +75 -0
  57. gcore/resources/cloud/instances/flavors.py +449 -0
  58. gcore/resources/cloud/instances/images.py +987 -0
  59. gcore/resources/cloud/instances/instances.py +2349 -0
  60. gcore/resources/cloud/instances/interfaces.py +797 -0
  61. gcore/resources/cloud/instances/metrics.py +217 -0
  62. gcore/resources/cloud/ip_ranges.py +135 -0
  63. gcore/resources/cloud/load_balancers/__init__.py +103 -0
  64. gcore/resources/cloud/load_balancers/flavors.py +193 -0
  65. gcore/resources/cloud/load_balancers/l7_policies/__init__.py +33 -0
  66. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +738 -0
  67. gcore/resources/cloud/load_balancers/l7_policies/rules.py +722 -0
  68. gcore/resources/cloud/load_balancers/listeners.py +788 -0
  69. gcore/resources/cloud/load_balancers/load_balancers.py +1237 -0
  70. gcore/resources/cloud/load_balancers/metrics.py +205 -0
  71. gcore/resources/cloud/load_balancers/pools/__init__.py +47 -0
  72. gcore/resources/cloud/load_balancers/pools/health_monitors.py +352 -0
  73. gcore/resources/cloud/load_balancers/pools/members.py +353 -0
  74. gcore/resources/cloud/load_balancers/pools/pools.py +872 -0
  75. gcore/resources/cloud/load_balancers/statuses.py +260 -0
  76. gcore/resources/cloud/networks/__init__.py +47 -0
  77. gcore/resources/cloud/networks/networks.py +715 -0
  78. gcore/resources/cloud/networks/routers.py +875 -0
  79. gcore/resources/cloud/networks/subnets.py +865 -0
  80. gcore/resources/cloud/placement_groups.py +465 -0
  81. gcore/resources/cloud/projects.py +608 -0
  82. gcore/resources/cloud/quotas/__init__.py +33 -0
  83. gcore/resources/cloud/quotas/quotas.py +335 -0
  84. gcore/resources/cloud/quotas/requests.py +482 -0
  85. gcore/resources/cloud/regions.py +328 -0
  86. gcore/resources/cloud/registries/__init__.py +75 -0
  87. gcore/resources/cloud/registries/artifacts.py +277 -0
  88. gcore/resources/cloud/registries/registries.py +688 -0
  89. gcore/resources/cloud/registries/repositories.py +265 -0
  90. gcore/resources/cloud/registries/tags.py +190 -0
  91. gcore/resources/cloud/registries/users.py +701 -0
  92. gcore/resources/cloud/reserved_fixed_ips/__init__.py +33 -0
  93. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +965 -0
  94. gcore/resources/cloud/reserved_fixed_ips/vip.py +577 -0
  95. gcore/resources/cloud/secrets.py +797 -0
  96. gcore/resources/cloud/security_groups/__init__.py +33 -0
  97. gcore/resources/cloud/security_groups/rules.py +626 -0
  98. gcore/resources/cloud/security_groups/security_groups.py +863 -0
  99. gcore/resources/cloud/ssh_keys.py +635 -0
  100. gcore/resources/cloud/tasks.py +699 -0
  101. gcore/resources/cloud/users/__init__.py +33 -0
  102. gcore/resources/cloud/users/role_assignments.py +533 -0
  103. gcore/resources/cloud/users/users.py +102 -0
  104. gcore/resources/cloud/volumes.py +1710 -0
  105. gcore/types/__init__.py +3 -0
  106. gcore/types/cloud/__init__.py +199 -0
  107. gcore/types/cloud/allowed_address_pairs.py +15 -0
  108. gcore/types/cloud/aws_iam_data.py +13 -0
  109. gcore/types/cloud/aws_iam_data_param.py +15 -0
  110. gcore/types/cloud/baremetal/__init__.py +13 -0
  111. gcore/types/cloud/baremetal/baremetal_fixed_address.py +30 -0
  112. gcore/types/cloud/baremetal/baremetal_floating_address.py +15 -0
  113. gcore/types/cloud/baremetal/baremetal_server.py +178 -0
  114. gcore/types/cloud/baremetal/flavor_list_params.py +35 -0
  115. gcore/types/cloud/baremetal/flavor_list_suitable_params.py +22 -0
  116. gcore/types/cloud/baremetal/image_list_params.py +33 -0
  117. gcore/types/cloud/baremetal/server_create_params.py +370 -0
  118. gcore/types/cloud/baremetal/server_list_params.py +114 -0
  119. gcore/types/cloud/baremetal/server_rebuild_params.py +23 -0
  120. gcore/types/cloud/baremetal_flavor.py +58 -0
  121. gcore/types/cloud/baremetal_flavor_list.py +16 -0
  122. gcore/types/cloud/billing_reservation.py +153 -0
  123. gcore/types/cloud/billing_reservation_list_params.py +54 -0
  124. gcore/types/cloud/blackhole_port.py +66 -0
  125. gcore/types/cloud/capacity.py +13 -0
  126. gcore/types/cloud/console.py +18 -0
  127. gcore/types/cloud/container_probe.py +36 -0
  128. gcore/types/cloud/container_probe_config.py +16 -0
  129. gcore/types/cloud/container_probe_config_create_param.py +18 -0
  130. gcore/types/cloud/container_probe_create_param.py +38 -0
  131. gcore/types/cloud/container_probe_exec.py +12 -0
  132. gcore/types/cloud/container_probe_exec_create_param.py +13 -0
  133. gcore/types/cloud/container_probe_http_get.py +26 -0
  134. gcore/types/cloud/container_probe_http_get_create_param.py +25 -0
  135. gcore/types/cloud/container_probe_tcp_socket.py +10 -0
  136. gcore/types/cloud/container_probe_tcp_socket_create_param.py +12 -0
  137. gcore/types/cloud/container_scale.py +25 -0
  138. gcore/types/cloud/container_scale_trigger_rate.py +13 -0
  139. gcore/types/cloud/container_scale_trigger_sqs.py +33 -0
  140. gcore/types/cloud/container_scale_trigger_threshold.py +10 -0
  141. gcore/types/cloud/container_scale_triggers.py +36 -0
  142. gcore/types/cloud/ddos_profile.py +33 -0
  143. gcore/types/cloud/ddos_profile_field.py +31 -0
  144. gcore/types/cloud/ddos_profile_option_list.py +15 -0
  145. gcore/types/cloud/ddos_profile_status.py +13 -0
  146. gcore/types/cloud/ddos_profile_template.py +18 -0
  147. gcore/types/cloud/ddos_profile_template_field.py +23 -0
  148. gcore/types/cloud/deploy_status.py +13 -0
  149. gcore/types/cloud/file_share.py +111 -0
  150. gcore/types/cloud/file_share_create_params.py +104 -0
  151. gcore/types/cloud/file_share_list_params.py +24 -0
  152. gcore/types/cloud/file_share_resize_params.py +18 -0
  153. gcore/types/cloud/file_share_update_params.py +18 -0
  154. gcore/types/cloud/file_shares/__init__.py +7 -0
  155. gcore/types/cloud/file_shares/access_rule.py +21 -0
  156. gcore/types/cloud/file_shares/access_rule_create_params.py +21 -0
  157. gcore/types/cloud/file_shares/access_rule_list.py +16 -0
  158. gcore/types/cloud/fixed_address.py +38 -0
  159. gcore/types/cloud/fixed_address_short.py +24 -0
  160. gcore/types/cloud/flavor_hardware_description.py +27 -0
  161. gcore/types/cloud/floating_address.py +15 -0
  162. gcore/types/cloud/floating_ip.py +77 -0
  163. gcore/types/cloud/floating_ip_assign_params.py +20 -0
  164. gcore/types/cloud/floating_ip_create_params.py +40 -0
  165. gcore/types/cloud/floating_ip_detailed.py +222 -0
  166. gcore/types/cloud/floating_ip_list_params.py +35 -0
  167. gcore/types/cloud/floating_ip_status.py +7 -0
  168. gcore/types/cloud/gpu_baremetal_cluster.py +116 -0
  169. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +135 -0
  170. gcore/types/cloud/gpu_baremetal_cluster_delete_params.py +28 -0
  171. gcore/types/cloud/gpu_baremetal_cluster_list_params.py +19 -0
  172. gcore/types/cloud/gpu_baremetal_cluster_rebuild_params.py +26 -0
  173. gcore/types/cloud/gpu_baremetal_cluster_resize_params.py +16 -0
  174. gcore/types/cloud/gpu_baremetal_cluster_server.py +200 -0
  175. gcore/types/cloud/gpu_baremetal_cluster_server_list.py +16 -0
  176. gcore/types/cloud/gpu_baremetal_clusters/__init__.py +9 -0
  177. gcore/types/cloud/gpu_baremetal_clusters/flavor_list_params.py +21 -0
  178. gcore/types/cloud/gpu_baremetal_clusters/image_upload_params.py +58 -0
  179. gcore/types/cloud/gpu_baremetal_clusters/server_attach_interface_params.py +253 -0
  180. gcore/types/cloud/gpu_baremetal_clusters/server_delete_params.py +21 -0
  181. gcore/types/cloud/gpu_baremetal_clusters/server_detach_interface_params.py +19 -0
  182. gcore/types/cloud/gpu_baremetal_flavor.py +133 -0
  183. gcore/types/cloud/gpu_baremetal_flavor_list.py +16 -0
  184. gcore/types/cloud/gpu_image.py +70 -0
  185. gcore/types/cloud/gpu_image_list.py +16 -0
  186. gcore/types/cloud/health_monitor.py +48 -0
  187. gcore/types/cloud/health_monitor_status.py +22 -0
  188. gcore/types/cloud/http_method.py +7 -0
  189. gcore/types/cloud/image.py +100 -0
  190. gcore/types/cloud/image_list.py +16 -0
  191. gcore/types/cloud/inference/__init__.py +25 -0
  192. gcore/types/cloud/inference/container.py +26 -0
  193. gcore/types/cloud/inference/deployment_create_params.py +222 -0
  194. gcore/types/cloud/inference/deployment_list_params.py +21 -0
  195. gcore/types/cloud/inference/deployment_update_params.py +215 -0
  196. gcore/types/cloud/inference/deployments/__init__.py +5 -0
  197. gcore/types/cloud/inference/deployments/log_list_params.py +28 -0
  198. gcore/types/cloud/inference/flavor_list_params.py +18 -0
  199. gcore/types/cloud/inference/inference.py +95 -0
  200. gcore/types/cloud/inference/inference_apikey_secret.py +15 -0
  201. gcore/types/cloud/inference/inference_flavor.py +34 -0
  202. gcore/types/cloud/inference/inference_log.py +21 -0
  203. gcore/types/cloud/inference/inference_registry_credential.py +19 -0
  204. gcore/types/cloud/inference/inference_registry_credential_full.py +22 -0
  205. gcore/types/cloud/inference/inference_secret.py +17 -0
  206. gcore/types/cloud/inference/mlcatalog_model_card.py +65 -0
  207. gcore/types/cloud/inference/mlcatalog_order_by_choices.py +7 -0
  208. gcore/types/cloud/inference/model_list_params.py +23 -0
  209. gcore/types/cloud/inference/registry_credential_create_params.py +24 -0
  210. gcore/types/cloud/inference/registry_credential_list_params.py +21 -0
  211. gcore/types/cloud/inference/registry_credential_replace_params.py +21 -0
  212. gcore/types/cloud/inference/secret_create_params.py +23 -0
  213. gcore/types/cloud/inference/secret_list_params.py +21 -0
  214. gcore/types/cloud/inference/secret_replace_params.py +20 -0
  215. gcore/types/cloud/inference_probes.py +19 -0
  216. gcore/types/cloud/ingress_opts_out.py +16 -0
  217. gcore/types/cloud/ingress_opts_param.py +18 -0
  218. gcore/types/cloud/instance.py +296 -0
  219. gcore/types/cloud/instance_action_params.py +32 -0
  220. gcore/types/cloud/instance_add_to_placement_group_params.py +16 -0
  221. gcore/types/cloud/instance_assign_security_group_params.py +28 -0
  222. gcore/types/cloud/instance_create_params.py +622 -0
  223. gcore/types/cloud/instance_delete_params.py +33 -0
  224. gcore/types/cloud/instance_get_console_params.py +16 -0
  225. gcore/types/cloud/instance_interface.py +40 -0
  226. gcore/types/cloud/instance_isolation.py +12 -0
  227. gcore/types/cloud/instance_list.py +16 -0
  228. gcore/types/cloud/instance_list_params.py +146 -0
  229. gcore/types/cloud/instance_metrics_time_unit.py +7 -0
  230. gcore/types/cloud/instance_resize_params.py +16 -0
  231. gcore/types/cloud/instance_unassign_security_group_params.py +28 -0
  232. gcore/types/cloud/instance_update_params.py +18 -0
  233. gcore/types/cloud/instances/__init__.py +19 -0
  234. gcore/types/cloud/instances/flavor_list_for_resize_params.py +16 -0
  235. gcore/types/cloud/instances/flavor_list_params.py +25 -0
  236. gcore/types/cloud/instances/flavor_list_suitable_params.py +56 -0
  237. gcore/types/cloud/instances/image_create_from_volume_params.py +53 -0
  238. gcore/types/cloud/instances/image_get_params.py +16 -0
  239. gcore/types/cloud/instances/image_list_params.py +33 -0
  240. gcore/types/cloud/instances/image_update_params.py +43 -0
  241. gcore/types/cloud/instances/image_upload_params.py +62 -0
  242. gcore/types/cloud/instances/instance_flavor.py +49 -0
  243. gcore/types/cloud/instances/instance_flavor_list.py +16 -0
  244. gcore/types/cloud/instances/interface_attach_params.py +253 -0
  245. gcore/types/cloud/instances/interface_detach_params.py +19 -0
  246. gcore/types/cloud/instances/metric_list_params.py +23 -0
  247. gcore/types/cloud/instances/metrics.py +52 -0
  248. gcore/types/cloud/instances/metrics_list.py +16 -0
  249. gcore/types/cloud/interface_ip_family.py +7 -0
  250. gcore/types/cloud/ip_assignment.py +13 -0
  251. gcore/types/cloud/ip_ranges.py +12 -0
  252. gcore/types/cloud/ip_version.py +7 -0
  253. gcore/types/cloud/laas_index_retention_policy.py +12 -0
  254. gcore/types/cloud/laas_index_retention_policy_param.py +13 -0
  255. gcore/types/cloud/lb_algorithm.py +7 -0
  256. gcore/types/cloud/lb_health_monitor_type.py +7 -0
  257. gcore/types/cloud/lb_listener_protocol.py +7 -0
  258. gcore/types/cloud/lb_pool_protocol.py +7 -0
  259. gcore/types/cloud/lb_session_persistence_type.py +7 -0
  260. gcore/types/cloud/listener_status.py +27 -0
  261. gcore/types/cloud/load_balancer.py +144 -0
  262. gcore/types/cloud/load_balancer_create_params.py +327 -0
  263. gcore/types/cloud/load_balancer_failover_params.py +16 -0
  264. gcore/types/cloud/load_balancer_flavor_detail.py +40 -0
  265. gcore/types/cloud/load_balancer_flavor_list.py +16 -0
  266. gcore/types/cloud/load_balancer_get_params.py +19 -0
  267. gcore/types/cloud/load_balancer_instance_role.py +7 -0
  268. gcore/types/cloud/load_balancer_l7_policy.py +86 -0
  269. gcore/types/cloud/load_balancer_l7_policy_list.py +16 -0
  270. gcore/types/cloud/load_balancer_l7_rule.py +72 -0
  271. gcore/types/cloud/load_balancer_l7_rule_list.py +16 -0
  272. gcore/types/cloud/load_balancer_list_params.py +53 -0
  273. gcore/types/cloud/load_balancer_listener_detail.py +97 -0
  274. gcore/types/cloud/load_balancer_listener_list.py +16 -0
  275. gcore/types/cloud/load_balancer_member_connectivity.py +7 -0
  276. gcore/types/cloud/load_balancer_metrics.py +32 -0
  277. gcore/types/cloud/load_balancer_metrics_list.py +16 -0
  278. gcore/types/cloud/load_balancer_operating_status.py +7 -0
  279. gcore/types/cloud/load_balancer_pool.py +87 -0
  280. gcore/types/cloud/load_balancer_pool_list.py +16 -0
  281. gcore/types/cloud/load_balancer_resize_params.py +16 -0
  282. gcore/types/cloud/load_balancer_statistics.py +22 -0
  283. gcore/types/cloud/load_balancer_status.py +38 -0
  284. gcore/types/cloud/load_balancer_status_list.py +16 -0
  285. gcore/types/cloud/load_balancer_update_params.py +43 -0
  286. gcore/types/cloud/load_balancers/__init__.py +15 -0
  287. gcore/types/cloud/load_balancers/flavor_list_params.py +16 -0
  288. gcore/types/cloud/load_balancers/l7_policies/__init__.py +6 -0
  289. gcore/types/cloud/load_balancers/l7_policies/rule_create_params.py +50 -0
  290. gcore/types/cloud/load_balancers/l7_policies/rule_replace_params.py +43 -0
  291. gcore/types/cloud/load_balancers/l7_policy_create_params.py +54 -0
  292. gcore/types/cloud/load_balancers/l7_policy_replace_params.py +51 -0
  293. gcore/types/cloud/load_balancers/listener_create_params.py +72 -0
  294. gcore/types/cloud/load_balancers/listener_get_params.py +16 -0
  295. gcore/types/cloud/load_balancers/listener_list_params.py +19 -0
  296. gcore/types/cloud/load_balancers/listener_update_params.py +55 -0
  297. gcore/types/cloud/load_balancers/metric_list_params.py +21 -0
  298. gcore/types/cloud/load_balancers/pool_create_params.py +141 -0
  299. gcore/types/cloud/load_balancers/pool_list_params.py +25 -0
  300. gcore/types/cloud/load_balancers/pool_update_params.py +139 -0
  301. gcore/types/cloud/load_balancers/pools/__init__.py +6 -0
  302. gcore/types/cloud/load_balancers/pools/health_monitor_create_params.py +49 -0
  303. gcore/types/cloud/load_balancers/pools/member_add_params.py +44 -0
  304. gcore/types/cloud/logging.py +22 -0
  305. gcore/types/cloud/member.py +47 -0
  306. gcore/types/cloud/member_status.py +24 -0
  307. gcore/types/cloud/network.py +79 -0
  308. gcore/types/cloud/network_create_params.py +34 -0
  309. gcore/types/cloud/network_details.py +79 -0
  310. gcore/types/cloud/network_interface.py +78 -0
  311. gcore/types/cloud/network_interface_list.py +16 -0
  312. gcore/types/cloud/network_list_params.py +36 -0
  313. gcore/types/cloud/network_update_params.py +16 -0
  314. gcore/types/cloud/networks/__init__.py +14 -0
  315. gcore/types/cloud/networks/router.py +83 -0
  316. gcore/types/cloud/networks/router_attach_subnet_params.py +24 -0
  317. gcore/types/cloud/networks/router_create_params.py +75 -0
  318. gcore/types/cloud/networks/router_detach_subnet_params.py +16 -0
  319. gcore/types/cloud/networks/router_list.py +16 -0
  320. gcore/types/cloud/networks/router_list_params.py +19 -0
  321. gcore/types/cloud/networks/router_update_params.py +45 -0
  322. gcore/types/cloud/networks/subnet_create_params.py +82 -0
  323. gcore/types/cloud/networks/subnet_list_params.py +58 -0
  324. gcore/types/cloud/networks/subnet_update_params.py +47 -0
  325. gcore/types/cloud/placement_group.py +41 -0
  326. gcore/types/cloud/placement_group_create_params.py +19 -0
  327. gcore/types/cloud/placement_group_list.py +16 -0
  328. gcore/types/cloud/pool_status.py +31 -0
  329. gcore/types/cloud/project.py +47 -0
  330. gcore/types/cloud/project_create_params.py +22 -0
  331. gcore/types/cloud/project_list_params.py +27 -0
  332. gcore/types/cloud/project_replace_params.py +18 -0
  333. gcore/types/cloud/provisioning_status.py +9 -0
  334. gcore/types/cloud/quota_get_all_response.py +340 -0
  335. gcore/types/cloud/quota_get_by_region_response.py +288 -0
  336. gcore/types/cloud/quota_get_global_response.py +51 -0
  337. gcore/types/cloud/quotas/__init__.py +8 -0
  338. gcore/types/cloud/quotas/request_create_params.py +193 -0
  339. gcore/types/cloud/quotas/request_get_response.py +205 -0
  340. gcore/types/cloud/quotas/request_list_params.py +22 -0
  341. gcore/types/cloud/quotas/request_list_response.py +205 -0
  342. gcore/types/cloud/region.py +101 -0
  343. gcore/types/cloud/region_capacity.py +16 -0
  344. gcore/types/cloud/region_capacity_list.py +16 -0
  345. gcore/types/cloud/region_get_params.py +18 -0
  346. gcore/types/cloud/region_list_params.py +31 -0
  347. gcore/types/cloud/registries/__init__.py +14 -0
  348. gcore/types/cloud/registries/registry_artifact.py +35 -0
  349. gcore/types/cloud/registries/registry_artifact_list.py +16 -0
  350. gcore/types/cloud/registries/registry_repository.py +30 -0
  351. gcore/types/cloud/registries/registry_repository_list.py +16 -0
  352. gcore/types/cloud/registries/registry_user.py +28 -0
  353. gcore/types/cloud/registries/registry_user_created.py +31 -0
  354. gcore/types/cloud/registries/registry_user_list.py +16 -0
  355. gcore/types/cloud/registries/user_create_multiple_params.py +36 -0
  356. gcore/types/cloud/registries/user_create_params.py +30 -0
  357. gcore/types/cloud/registries/user_update_params.py +21 -0
  358. gcore/types/cloud/registry.py +33 -0
  359. gcore/types/cloud/registry_create_params.py +24 -0
  360. gcore/types/cloud/registry_list.py +16 -0
  361. gcore/types/cloud/registry_resize_params.py +16 -0
  362. gcore/types/cloud/registry_tag.py +27 -0
  363. gcore/types/cloud/reserved_fixed_ip.py +98 -0
  364. gcore/types/cloud/reserved_fixed_ip_create_params.py +107 -0
  365. gcore/types/cloud/reserved_fixed_ip_list_params.py +47 -0
  366. gcore/types/cloud/reserved_fixed_ips/__init__.py +12 -0
  367. gcore/types/cloud/reserved_fixed_ips/candidate_port.py +26 -0
  368. gcore/types/cloud/reserved_fixed_ips/candidate_port_list.py +16 -0
  369. gcore/types/cloud/reserved_fixed_ips/connected_port.py +26 -0
  370. gcore/types/cloud/reserved_fixed_ips/connected_port_list.py +16 -0
  371. gcore/types/cloud/reserved_fixed_ips/ip_with_subnet.py +17 -0
  372. gcore/types/cloud/reserved_fixed_ips/vip_replace_connected_ports_params.py +17 -0
  373. gcore/types/cloud/reserved_fixed_ips/vip_toggle_params.py +16 -0
  374. gcore/types/cloud/reserved_fixed_ips/vip_update_connected_ports_params.py +17 -0
  375. gcore/types/cloud/route.py +16 -0
  376. gcore/types/cloud/secret.py +64 -0
  377. gcore/types/cloud/secret_create_params.py +66 -0
  378. gcore/types/cloud/secret_list_response.py +16 -0
  379. gcore/types/cloud/secret_upload_tls_certificate_params.py +39 -0
  380. gcore/types/cloud/security_group.py +45 -0
  381. gcore/types/cloud/security_group_copy_params.py +16 -0
  382. gcore/types/cloud/security_group_create_params.py +94 -0
  383. gcore/types/cloud/security_group_list_params.py +30 -0
  384. gcore/types/cloud/security_group_rule.py +83 -0
  385. gcore/types/cloud/security_group_update_params.py +83 -0
  386. gcore/types/cloud/security_groups/__init__.py +6 -0
  387. gcore/types/cloud/security_groups/rule_create_params.py +65 -0
  388. gcore/types/cloud/security_groups/rule_replace_params.py +72 -0
  389. gcore/types/cloud/session_persistence.py +22 -0
  390. gcore/types/cloud/ssh_key.py +39 -0
  391. gcore/types/cloud/ssh_key_create_params.py +31 -0
  392. gcore/types/cloud/ssh_key_created.py +53 -0
  393. gcore/types/cloud/ssh_key_list_params.py +21 -0
  394. gcore/types/cloud/ssh_key_update_params.py +15 -0
  395. gcore/types/cloud/subnet.py +87 -0
  396. gcore/types/cloud/tag.py +16 -0
  397. gcore/types/cloud/tag_update_map_param.py +10 -0
  398. gcore/types/cloud/task.py +191 -0
  399. gcore/types/cloud/task_acknowledge_all_params.py +16 -0
  400. gcore/types/cloud/task_id_list.py +12 -0
  401. gcore/types/cloud/task_list_params.py +104 -0
  402. gcore/types/cloud/users/__init__.py +9 -0
  403. gcore/types/cloud/users/role_assignment.py +33 -0
  404. gcore/types/cloud/users/role_assignment_create_params.py +22 -0
  405. gcore/types/cloud/users/role_assignment_list_params.py +25 -0
  406. gcore/types/cloud/users/role_assignment_update_delete.py +10 -0
  407. gcore/types/cloud/users/role_assignment_update_params.py +22 -0
  408. gcore/types/cloud/volume.py +141 -0
  409. gcore/types/cloud/volume_attach_to_instance_params.py +21 -0
  410. gcore/types/cloud/volume_change_type_params.py +18 -0
  411. gcore/types/cloud/volume_create_params.py +176 -0
  412. gcore/types/cloud/volume_delete_params.py +18 -0
  413. gcore/types/cloud/volume_detach_from_instance_params.py +18 -0
  414. gcore/types/cloud/volume_list_params.py +56 -0
  415. gcore/types/cloud/volume_resize_params.py +18 -0
  416. gcore/types/cloud/volume_update_params.py +18 -0
  417. gcore-0.1.0a1.dist-info/METADATA +485 -0
  418. gcore-0.1.0a1.dist-info/RECORD +420 -0
  419. gcore-0.1.0a1.dist-info/WHEEL +4 -0
  420. gcore-0.1.0a1.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,1143 @@
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 List, Iterable, Optional
6
+
7
+ import httpx
8
+
9
+ from .images import (
10
+ ImagesResource,
11
+ AsyncImagesResource,
12
+ ImagesResourceWithRawResponse,
13
+ AsyncImagesResourceWithRawResponse,
14
+ ImagesResourceWithStreamingResponse,
15
+ AsyncImagesResourceWithStreamingResponse,
16
+ )
17
+ from .flavors import (
18
+ FlavorsResource,
19
+ AsyncFlavorsResource,
20
+ FlavorsResourceWithRawResponse,
21
+ AsyncFlavorsResourceWithRawResponse,
22
+ FlavorsResourceWithStreamingResponse,
23
+ AsyncFlavorsResourceWithStreamingResponse,
24
+ )
25
+ from .servers import (
26
+ ServersResource,
27
+ AsyncServersResource,
28
+ ServersResourceWithRawResponse,
29
+ AsyncServersResourceWithRawResponse,
30
+ ServersResourceWithStreamingResponse,
31
+ AsyncServersResourceWithStreamingResponse,
32
+ )
33
+ from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven
34
+ from ...._utils import maybe_transform, async_maybe_transform
35
+ from ...._compat import cached_property
36
+ from .interfaces import (
37
+ InterfacesResource,
38
+ AsyncInterfacesResource,
39
+ InterfacesResourceWithRawResponse,
40
+ AsyncInterfacesResourceWithRawResponse,
41
+ InterfacesResourceWithStreamingResponse,
42
+ AsyncInterfacesResourceWithStreamingResponse,
43
+ )
44
+ from ...._resource import SyncAPIResource, AsyncAPIResource
45
+ from ...._response import (
46
+ to_raw_response_wrapper,
47
+ to_streamed_response_wrapper,
48
+ async_to_raw_response_wrapper,
49
+ async_to_streamed_response_wrapper,
50
+ )
51
+ from ....pagination import SyncOffsetPage, AsyncOffsetPage
52
+ from ....types.cloud import (
53
+ gpu_baremetal_cluster_list_params,
54
+ gpu_baremetal_cluster_create_params,
55
+ gpu_baremetal_cluster_delete_params,
56
+ gpu_baremetal_cluster_resize_params,
57
+ gpu_baremetal_cluster_rebuild_params,
58
+ )
59
+ from ...._base_client import AsyncPaginator, make_request_options
60
+ from ....types.cloud.task_id_list import TaskIDList
61
+ from ....types.cloud.tag_update_map_param import TagUpdateMapParam
62
+ from ....types.cloud.gpu_baremetal_cluster import GPUBaremetalCluster
63
+ from ....types.cloud.gpu_baremetal_cluster_server_list import GPUBaremetalClusterServerList
64
+
65
+ __all__ = ["GPUBaremetalClustersResource", "AsyncGPUBaremetalClustersResource"]
66
+
67
+
68
+ class GPUBaremetalClustersResource(SyncAPIResource):
69
+ @cached_property
70
+ def interfaces(self) -> InterfacesResource:
71
+ return InterfacesResource(self._client)
72
+
73
+ @cached_property
74
+ def servers(self) -> ServersResource:
75
+ return ServersResource(self._client)
76
+
77
+ @cached_property
78
+ def flavors(self) -> FlavorsResource:
79
+ return FlavorsResource(self._client)
80
+
81
+ @cached_property
82
+ def images(self) -> ImagesResource:
83
+ return ImagesResource(self._client)
84
+
85
+ @cached_property
86
+ def with_raw_response(self) -> GPUBaremetalClustersResourceWithRawResponse:
87
+ """
88
+ This property can be used as a prefix for any HTTP method call to return
89
+ the raw response object instead of the parsed content.
90
+
91
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
92
+ """
93
+ return GPUBaremetalClustersResourceWithRawResponse(self)
94
+
95
+ @cached_property
96
+ def with_streaming_response(self) -> GPUBaremetalClustersResourceWithStreamingResponse:
97
+ """
98
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
99
+
100
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
101
+ """
102
+ return GPUBaremetalClustersResourceWithStreamingResponse(self)
103
+
104
+ def create(
105
+ self,
106
+ *,
107
+ project_id: int | None = None,
108
+ region_id: int | None = None,
109
+ flavor: str,
110
+ image_id: str,
111
+ interfaces: Iterable[gpu_baremetal_cluster_create_params.Interface],
112
+ name: str,
113
+ instances_count: int | NotGiven = NOT_GIVEN,
114
+ ssh_key_name: str | NotGiven = NOT_GIVEN,
115
+ tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
116
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
117
+ # The extra values given here take precedence over values defined on the client or passed to this method.
118
+ extra_headers: Headers | None = None,
119
+ extra_query: Query | None = None,
120
+ extra_body: Body | None = None,
121
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
122
+ ) -> TaskIDList:
123
+ """
124
+ Create bare metal GPU cluster
125
+
126
+ Args:
127
+ flavor: Flavor name
128
+
129
+ image_id: Image ID
130
+
131
+ interfaces: A list of network interfaces for the server. You can create one or more
132
+ interfaces - private, public, or both.
133
+
134
+ name: GPU Cluster name
135
+
136
+ instances_count: Number of servers to create
137
+
138
+ ssh_key_name: Specifies the name of the SSH keypair, created via the
139
+ <a href="#operation/SSHKeyCollectionViewSet.post">/v1/ssh_keys endpoint</a>.
140
+
141
+ tags: Key-value tags to associate with the resource. A tag is a key-value pair that
142
+ can be associated with a resource, enabling efficient filtering and grouping for
143
+ better organization and management. Some tags are read-only and cannot be
144
+ modified by the user. Tags are also integrated with cost reports, allowing cost
145
+ data to be filtered based on tag keys or values.
146
+
147
+ extra_headers: Send extra headers
148
+
149
+ extra_query: Add additional query parameters to the request
150
+
151
+ extra_body: Add additional JSON properties to the request
152
+
153
+ timeout: Override the client-level default timeout for this request, in seconds
154
+ """
155
+ if project_id is None:
156
+ project_id = self._client._get_cloud_project_id_path_param()
157
+ if region_id is None:
158
+ region_id = self._client._get_cloud_region_id_path_param()
159
+ return self._post(
160
+ f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}",
161
+ body=maybe_transform(
162
+ {
163
+ "flavor": flavor,
164
+ "image_id": image_id,
165
+ "interfaces": interfaces,
166
+ "name": name,
167
+ "instances_count": instances_count,
168
+ "ssh_key_name": ssh_key_name,
169
+ "tags": tags,
170
+ },
171
+ gpu_baremetal_cluster_create_params.GPUBaremetalClusterCreateParams,
172
+ ),
173
+ options=make_request_options(
174
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
175
+ ),
176
+ cast_to=TaskIDList,
177
+ )
178
+
179
+ def list(
180
+ self,
181
+ *,
182
+ project_id: int | None = None,
183
+ region_id: int | None = None,
184
+ limit: int | NotGiven = NOT_GIVEN,
185
+ offset: int | NotGiven = NOT_GIVEN,
186
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
187
+ # The extra values given here take precedence over values defined on the client or passed to this method.
188
+ extra_headers: Headers | None = None,
189
+ extra_query: Query | None = None,
190
+ extra_body: Body | None = None,
191
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
192
+ ) -> SyncOffsetPage[GPUBaremetalCluster]:
193
+ """
194
+ List bare metal GPU clusters
195
+
196
+ Args:
197
+ limit: Limit the number of returned clusters
198
+
199
+ offset: Offset value is used to exclude the first set of records from the result
200
+
201
+ extra_headers: Send extra headers
202
+
203
+ extra_query: Add additional query parameters to the request
204
+
205
+ extra_body: Add additional JSON properties to the request
206
+
207
+ timeout: Override the client-level default timeout for this request, in seconds
208
+ """
209
+ if project_id is None:
210
+ project_id = self._client._get_cloud_project_id_path_param()
211
+ if region_id is None:
212
+ region_id = self._client._get_cloud_region_id_path_param()
213
+ return self._get_api_list(
214
+ f"/cloud/v2/ai/clusters/{project_id}/{region_id}",
215
+ page=SyncOffsetPage[GPUBaremetalCluster],
216
+ options=make_request_options(
217
+ extra_headers=extra_headers,
218
+ extra_query=extra_query,
219
+ extra_body=extra_body,
220
+ timeout=timeout,
221
+ query=maybe_transform(
222
+ {
223
+ "limit": limit,
224
+ "offset": offset,
225
+ },
226
+ gpu_baremetal_cluster_list_params.GPUBaremetalClusterListParams,
227
+ ),
228
+ ),
229
+ model=GPUBaremetalCluster,
230
+ )
231
+
232
+ def delete(
233
+ self,
234
+ cluster_id: str,
235
+ *,
236
+ project_id: int | None = None,
237
+ region_id: int | None = None,
238
+ delete_floatings: bool | NotGiven = NOT_GIVEN,
239
+ floatings: str | NotGiven = NOT_GIVEN,
240
+ reserved_fixed_ips: str | NotGiven = NOT_GIVEN,
241
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
242
+ # The extra values given here take precedence over values defined on the client or passed to this method.
243
+ extra_headers: Headers | None = None,
244
+ extra_query: Query | None = None,
245
+ extra_body: Body | None = None,
246
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
247
+ ) -> TaskIDList:
248
+ """
249
+ Delete bare metal GPU cluster
250
+
251
+ Args:
252
+ delete_floatings: True if it is required to delete floating IPs assigned to the servers. Can't be
253
+ used with floatings.
254
+
255
+ floatings: Comma separated list of floating ids that should be deleted. Can't be used with
256
+ delete_floatings.
257
+
258
+ reserved_fixed_ips: Comma separated list of port IDs to be deleted with the servers
259
+
260
+ extra_headers: Send extra headers
261
+
262
+ extra_query: Add additional query parameters to the request
263
+
264
+ extra_body: Add additional JSON properties to the request
265
+
266
+ timeout: Override the client-level default timeout for this request, in seconds
267
+ """
268
+ if project_id is None:
269
+ project_id = self._client._get_cloud_project_id_path_param()
270
+ if region_id is None:
271
+ region_id = self._client._get_cloud_region_id_path_param()
272
+ if not cluster_id:
273
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
274
+ return self._delete(
275
+ f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}",
276
+ options=make_request_options(
277
+ extra_headers=extra_headers,
278
+ extra_query=extra_query,
279
+ extra_body=extra_body,
280
+ timeout=timeout,
281
+ query=maybe_transform(
282
+ {
283
+ "delete_floatings": delete_floatings,
284
+ "floatings": floatings,
285
+ "reserved_fixed_ips": reserved_fixed_ips,
286
+ },
287
+ gpu_baremetal_cluster_delete_params.GPUBaremetalClusterDeleteParams,
288
+ ),
289
+ ),
290
+ cast_to=TaskIDList,
291
+ )
292
+
293
+ def get(
294
+ self,
295
+ cluster_id: str,
296
+ *,
297
+ project_id: int | None = None,
298
+ region_id: int | None = None,
299
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
300
+ # The extra values given here take precedence over values defined on the client or passed to this method.
301
+ extra_headers: Headers | None = None,
302
+ extra_query: Query | None = None,
303
+ extra_body: Body | None = None,
304
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
305
+ ) -> GPUBaremetalCluster:
306
+ """
307
+ Get bare metal GPU cluster
308
+
309
+ Args:
310
+ extra_headers: Send extra headers
311
+
312
+ extra_query: Add additional query parameters to the request
313
+
314
+ extra_body: Add additional JSON properties to the request
315
+
316
+ timeout: Override the client-level default timeout for this request, in seconds
317
+ """
318
+ if project_id is None:
319
+ project_id = self._client._get_cloud_project_id_path_param()
320
+ if region_id is None:
321
+ region_id = self._client._get_cloud_region_id_path_param()
322
+ if not cluster_id:
323
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
324
+ return self._get(
325
+ f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}",
326
+ options=make_request_options(
327
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
328
+ ),
329
+ cast_to=GPUBaremetalCluster,
330
+ )
331
+
332
+ def powercycle_all_servers(
333
+ self,
334
+ cluster_id: str,
335
+ *,
336
+ project_id: int | None = None,
337
+ region_id: int | None = None,
338
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
339
+ # The extra values given here take precedence over values defined on the client or passed to this method.
340
+ extra_headers: Headers | None = None,
341
+ extra_query: Query | None = None,
342
+ extra_body: Body | None = None,
343
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
344
+ ) -> GPUBaremetalClusterServerList:
345
+ """
346
+ Stops and then starts all cluster servers, effectively performing a hard reboot.
347
+
348
+ Args:
349
+ extra_headers: Send extra headers
350
+
351
+ extra_query: Add additional query parameters to the request
352
+
353
+ extra_body: Add additional JSON properties to the request
354
+
355
+ timeout: Override the client-level default timeout for this request, in seconds
356
+ """
357
+ if project_id is None:
358
+ project_id = self._client._get_cloud_project_id_path_param()
359
+ if region_id is None:
360
+ region_id = self._client._get_cloud_region_id_path_param()
361
+ if not cluster_id:
362
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
363
+ return self._post(
364
+ f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle",
365
+ options=make_request_options(
366
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
367
+ ),
368
+ cast_to=GPUBaremetalClusterServerList,
369
+ )
370
+
371
+ def reboot_all_servers(
372
+ self,
373
+ cluster_id: str,
374
+ *,
375
+ project_id: int | None = None,
376
+ region_id: int | None = None,
377
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
378
+ # The extra values given here take precedence over values defined on the client or passed to this method.
379
+ extra_headers: Headers | None = None,
380
+ extra_query: Query | None = None,
381
+ extra_body: Body | None = None,
382
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
383
+ ) -> GPUBaremetalClusterServerList:
384
+ """
385
+ Reboot all bare metal GPU cluster servers
386
+
387
+ Args:
388
+ extra_headers: Send extra headers
389
+
390
+ extra_query: Add additional query parameters to the request
391
+
392
+ extra_body: Add additional JSON properties to the request
393
+
394
+ timeout: Override the client-level default timeout for this request, in seconds
395
+ """
396
+ if project_id is None:
397
+ project_id = self._client._get_cloud_project_id_path_param()
398
+ if region_id is None:
399
+ region_id = self._client._get_cloud_region_id_path_param()
400
+ if not cluster_id:
401
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
402
+ return self._post(
403
+ f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot",
404
+ options=make_request_options(
405
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
406
+ ),
407
+ cast_to=GPUBaremetalClusterServerList,
408
+ )
409
+
410
+ def rebuild(
411
+ self,
412
+ cluster_id: str,
413
+ *,
414
+ project_id: int | None = None,
415
+ region_id: int | None = None,
416
+ nodes: List[str],
417
+ image_id: Optional[str] | NotGiven = NOT_GIVEN,
418
+ user_data: Optional[str] | NotGiven = NOT_GIVEN,
419
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
420
+ # The extra values given here take precedence over values defined on the client or passed to this method.
421
+ extra_headers: Headers | None = None,
422
+ extra_query: Query | None = None,
423
+ extra_body: Body | None = None,
424
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
425
+ ) -> TaskIDList:
426
+ """
427
+ All cluster nodes must be specified to update the cluster image.
428
+
429
+ Args:
430
+ nodes: List of nodes uuids to be rebuild
431
+
432
+ image_id: AI GPU image ID
433
+
434
+ user_data:
435
+ String in base64 format.Examples of the user_data:
436
+ https://cloudinit.readthedocs.io/en/latest/topics/examples.html
437
+
438
+ extra_headers: Send extra headers
439
+
440
+ extra_query: Add additional query parameters to the request
441
+
442
+ extra_body: Add additional JSON properties to the request
443
+
444
+ timeout: Override the client-level default timeout for this request, in seconds
445
+ """
446
+ if project_id is None:
447
+ project_id = self._client._get_cloud_project_id_path_param()
448
+ if region_id is None:
449
+ region_id = self._client._get_cloud_region_id_path_param()
450
+ if not cluster_id:
451
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
452
+ return self._post(
453
+ f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild",
454
+ body=maybe_transform(
455
+ {
456
+ "nodes": nodes,
457
+ "image_id": image_id,
458
+ "user_data": user_data,
459
+ },
460
+ gpu_baremetal_cluster_rebuild_params.GPUBaremetalClusterRebuildParams,
461
+ ),
462
+ options=make_request_options(
463
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
464
+ ),
465
+ cast_to=TaskIDList,
466
+ )
467
+
468
+ def resize(
469
+ self,
470
+ cluster_id: str,
471
+ *,
472
+ project_id: int | None = None,
473
+ region_id: int | None = None,
474
+ instances_count: int,
475
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
476
+ # The extra values given here take precedence over values defined on the client or passed to this method.
477
+ extra_headers: Headers | None = None,
478
+ extra_query: Query | None = None,
479
+ extra_body: Body | None = None,
480
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
481
+ ) -> TaskIDList:
482
+ """
483
+ Resize bare metal GPU cluster
484
+
485
+ Args:
486
+ instances_count: Resized (total) number of instances
487
+
488
+ extra_headers: Send extra headers
489
+
490
+ extra_query: Add additional query parameters to the request
491
+
492
+ extra_body: Add additional JSON properties to the request
493
+
494
+ timeout: Override the client-level default timeout for this request, in seconds
495
+ """
496
+ if project_id is None:
497
+ project_id = self._client._get_cloud_project_id_path_param()
498
+ if region_id is None:
499
+ region_id = self._client._get_cloud_region_id_path_param()
500
+ if not cluster_id:
501
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
502
+ return self._post(
503
+ f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize",
504
+ body=maybe_transform(
505
+ {"instances_count": instances_count},
506
+ gpu_baremetal_cluster_resize_params.GPUBaremetalClusterResizeParams,
507
+ ),
508
+ options=make_request_options(
509
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
510
+ ),
511
+ cast_to=TaskIDList,
512
+ )
513
+
514
+
515
+ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
516
+ @cached_property
517
+ def interfaces(self) -> AsyncInterfacesResource:
518
+ return AsyncInterfacesResource(self._client)
519
+
520
+ @cached_property
521
+ def servers(self) -> AsyncServersResource:
522
+ return AsyncServersResource(self._client)
523
+
524
+ @cached_property
525
+ def flavors(self) -> AsyncFlavorsResource:
526
+ return AsyncFlavorsResource(self._client)
527
+
528
+ @cached_property
529
+ def images(self) -> AsyncImagesResource:
530
+ return AsyncImagesResource(self._client)
531
+
532
+ @cached_property
533
+ def with_raw_response(self) -> AsyncGPUBaremetalClustersResourceWithRawResponse:
534
+ """
535
+ This property can be used as a prefix for any HTTP method call to return
536
+ the raw response object instead of the parsed content.
537
+
538
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
539
+ """
540
+ return AsyncGPUBaremetalClustersResourceWithRawResponse(self)
541
+
542
+ @cached_property
543
+ def with_streaming_response(self) -> AsyncGPUBaremetalClustersResourceWithStreamingResponse:
544
+ """
545
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
546
+
547
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
548
+ """
549
+ return AsyncGPUBaremetalClustersResourceWithStreamingResponse(self)
550
+
551
+ async def create(
552
+ self,
553
+ *,
554
+ project_id: int | None = None,
555
+ region_id: int | None = None,
556
+ flavor: str,
557
+ image_id: str,
558
+ interfaces: Iterable[gpu_baremetal_cluster_create_params.Interface],
559
+ name: str,
560
+ instances_count: int | NotGiven = NOT_GIVEN,
561
+ ssh_key_name: str | NotGiven = NOT_GIVEN,
562
+ tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
563
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
564
+ # The extra values given here take precedence over values defined on the client or passed to this method.
565
+ extra_headers: Headers | None = None,
566
+ extra_query: Query | None = None,
567
+ extra_body: Body | None = None,
568
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
569
+ ) -> TaskIDList:
570
+ """
571
+ Create bare metal GPU cluster
572
+
573
+ Args:
574
+ flavor: Flavor name
575
+
576
+ image_id: Image ID
577
+
578
+ interfaces: A list of network interfaces for the server. You can create one or more
579
+ interfaces - private, public, or both.
580
+
581
+ name: GPU Cluster name
582
+
583
+ instances_count: Number of servers to create
584
+
585
+ ssh_key_name: Specifies the name of the SSH keypair, created via the
586
+ <a href="#operation/SSHKeyCollectionViewSet.post">/v1/ssh_keys endpoint</a>.
587
+
588
+ tags: Key-value tags to associate with the resource. A tag is a key-value pair that
589
+ can be associated with a resource, enabling efficient filtering and grouping for
590
+ better organization and management. Some tags are read-only and cannot be
591
+ modified by the user. Tags are also integrated with cost reports, allowing cost
592
+ data to be filtered based on tag keys or values.
593
+
594
+ extra_headers: Send extra headers
595
+
596
+ extra_query: Add additional query parameters to the request
597
+
598
+ extra_body: Add additional JSON properties to the request
599
+
600
+ timeout: Override the client-level default timeout for this request, in seconds
601
+ """
602
+ if project_id is None:
603
+ project_id = self._client._get_cloud_project_id_path_param()
604
+ if region_id is None:
605
+ region_id = self._client._get_cloud_region_id_path_param()
606
+ return await self._post(
607
+ f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}",
608
+ body=await async_maybe_transform(
609
+ {
610
+ "flavor": flavor,
611
+ "image_id": image_id,
612
+ "interfaces": interfaces,
613
+ "name": name,
614
+ "instances_count": instances_count,
615
+ "ssh_key_name": ssh_key_name,
616
+ "tags": tags,
617
+ },
618
+ gpu_baremetal_cluster_create_params.GPUBaremetalClusterCreateParams,
619
+ ),
620
+ options=make_request_options(
621
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
622
+ ),
623
+ cast_to=TaskIDList,
624
+ )
625
+
626
+ def list(
627
+ self,
628
+ *,
629
+ project_id: int | None = None,
630
+ region_id: int | None = None,
631
+ limit: int | NotGiven = NOT_GIVEN,
632
+ offset: int | NotGiven = NOT_GIVEN,
633
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
634
+ # The extra values given here take precedence over values defined on the client or passed to this method.
635
+ extra_headers: Headers | None = None,
636
+ extra_query: Query | None = None,
637
+ extra_body: Body | None = None,
638
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
639
+ ) -> AsyncPaginator[GPUBaremetalCluster, AsyncOffsetPage[GPUBaremetalCluster]]:
640
+ """
641
+ List bare metal GPU clusters
642
+
643
+ Args:
644
+ limit: Limit the number of returned clusters
645
+
646
+ offset: Offset value is used to exclude the first set of records from the result
647
+
648
+ extra_headers: Send extra headers
649
+
650
+ extra_query: Add additional query parameters to the request
651
+
652
+ extra_body: Add additional JSON properties to the request
653
+
654
+ timeout: Override the client-level default timeout for this request, in seconds
655
+ """
656
+ if project_id is None:
657
+ project_id = self._client._get_cloud_project_id_path_param()
658
+ if region_id is None:
659
+ region_id = self._client._get_cloud_region_id_path_param()
660
+ return self._get_api_list(
661
+ f"/cloud/v2/ai/clusters/{project_id}/{region_id}",
662
+ page=AsyncOffsetPage[GPUBaremetalCluster],
663
+ options=make_request_options(
664
+ extra_headers=extra_headers,
665
+ extra_query=extra_query,
666
+ extra_body=extra_body,
667
+ timeout=timeout,
668
+ query=maybe_transform(
669
+ {
670
+ "limit": limit,
671
+ "offset": offset,
672
+ },
673
+ gpu_baremetal_cluster_list_params.GPUBaremetalClusterListParams,
674
+ ),
675
+ ),
676
+ model=GPUBaremetalCluster,
677
+ )
678
+
679
+ async def delete(
680
+ self,
681
+ cluster_id: str,
682
+ *,
683
+ project_id: int | None = None,
684
+ region_id: int | None = None,
685
+ delete_floatings: bool | NotGiven = NOT_GIVEN,
686
+ floatings: str | NotGiven = NOT_GIVEN,
687
+ reserved_fixed_ips: str | NotGiven = NOT_GIVEN,
688
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
689
+ # The extra values given here take precedence over values defined on the client or passed to this method.
690
+ extra_headers: Headers | None = None,
691
+ extra_query: Query | None = None,
692
+ extra_body: Body | None = None,
693
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
694
+ ) -> TaskIDList:
695
+ """
696
+ Delete bare metal GPU cluster
697
+
698
+ Args:
699
+ delete_floatings: True if it is required to delete floating IPs assigned to the servers. Can't be
700
+ used with floatings.
701
+
702
+ floatings: Comma separated list of floating ids that should be deleted. Can't be used with
703
+ delete_floatings.
704
+
705
+ reserved_fixed_ips: Comma separated list of port IDs to be deleted with the servers
706
+
707
+ extra_headers: Send extra headers
708
+
709
+ extra_query: Add additional query parameters to the request
710
+
711
+ extra_body: Add additional JSON properties to the request
712
+
713
+ timeout: Override the client-level default timeout for this request, in seconds
714
+ """
715
+ if project_id is None:
716
+ project_id = self._client._get_cloud_project_id_path_param()
717
+ if region_id is None:
718
+ region_id = self._client._get_cloud_region_id_path_param()
719
+ if not cluster_id:
720
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
721
+ return await self._delete(
722
+ f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}",
723
+ options=make_request_options(
724
+ extra_headers=extra_headers,
725
+ extra_query=extra_query,
726
+ extra_body=extra_body,
727
+ timeout=timeout,
728
+ query=await async_maybe_transform(
729
+ {
730
+ "delete_floatings": delete_floatings,
731
+ "floatings": floatings,
732
+ "reserved_fixed_ips": reserved_fixed_ips,
733
+ },
734
+ gpu_baremetal_cluster_delete_params.GPUBaremetalClusterDeleteParams,
735
+ ),
736
+ ),
737
+ cast_to=TaskIDList,
738
+ )
739
+
740
+ async def get(
741
+ self,
742
+ cluster_id: str,
743
+ *,
744
+ project_id: int | None = None,
745
+ region_id: int | None = None,
746
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
747
+ # The extra values given here take precedence over values defined on the client or passed to this method.
748
+ extra_headers: Headers | None = None,
749
+ extra_query: Query | None = None,
750
+ extra_body: Body | None = None,
751
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
752
+ ) -> GPUBaremetalCluster:
753
+ """
754
+ Get bare metal GPU cluster
755
+
756
+ Args:
757
+ extra_headers: Send extra headers
758
+
759
+ extra_query: Add additional query parameters to the request
760
+
761
+ extra_body: Add additional JSON properties to the request
762
+
763
+ timeout: Override the client-level default timeout for this request, in seconds
764
+ """
765
+ if project_id is None:
766
+ project_id = self._client._get_cloud_project_id_path_param()
767
+ if region_id is None:
768
+ region_id = self._client._get_cloud_region_id_path_param()
769
+ if not cluster_id:
770
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
771
+ return await self._get(
772
+ f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}",
773
+ options=make_request_options(
774
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
775
+ ),
776
+ cast_to=GPUBaremetalCluster,
777
+ )
778
+
779
+ async def powercycle_all_servers(
780
+ self,
781
+ cluster_id: str,
782
+ *,
783
+ project_id: int | None = None,
784
+ region_id: int | None = None,
785
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
786
+ # The extra values given here take precedence over values defined on the client or passed to this method.
787
+ extra_headers: Headers | None = None,
788
+ extra_query: Query | None = None,
789
+ extra_body: Body | None = None,
790
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
791
+ ) -> GPUBaremetalClusterServerList:
792
+ """
793
+ Stops and then starts all cluster servers, effectively performing a hard reboot.
794
+
795
+ Args:
796
+ extra_headers: Send extra headers
797
+
798
+ extra_query: Add additional query parameters to the request
799
+
800
+ extra_body: Add additional JSON properties to the request
801
+
802
+ timeout: Override the client-level default timeout for this request, in seconds
803
+ """
804
+ if project_id is None:
805
+ project_id = self._client._get_cloud_project_id_path_param()
806
+ if region_id is None:
807
+ region_id = self._client._get_cloud_region_id_path_param()
808
+ if not cluster_id:
809
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
810
+ return await self._post(
811
+ f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle",
812
+ options=make_request_options(
813
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
814
+ ),
815
+ cast_to=GPUBaremetalClusterServerList,
816
+ )
817
+
818
+ async def reboot_all_servers(
819
+ self,
820
+ cluster_id: str,
821
+ *,
822
+ project_id: int | None = None,
823
+ region_id: int | None = None,
824
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
825
+ # The extra values given here take precedence over values defined on the client or passed to this method.
826
+ extra_headers: Headers | None = None,
827
+ extra_query: Query | None = None,
828
+ extra_body: Body | None = None,
829
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
830
+ ) -> GPUBaremetalClusterServerList:
831
+ """
832
+ Reboot all bare metal GPU cluster servers
833
+
834
+ Args:
835
+ extra_headers: Send extra headers
836
+
837
+ extra_query: Add additional query parameters to the request
838
+
839
+ extra_body: Add additional JSON properties to the request
840
+
841
+ timeout: Override the client-level default timeout for this request, in seconds
842
+ """
843
+ if project_id is None:
844
+ project_id = self._client._get_cloud_project_id_path_param()
845
+ if region_id is None:
846
+ region_id = self._client._get_cloud_region_id_path_param()
847
+ if not cluster_id:
848
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
849
+ return await self._post(
850
+ f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot",
851
+ options=make_request_options(
852
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
853
+ ),
854
+ cast_to=GPUBaremetalClusterServerList,
855
+ )
856
+
857
+ async def rebuild(
858
+ self,
859
+ cluster_id: str,
860
+ *,
861
+ project_id: int | None = None,
862
+ region_id: int | None = None,
863
+ nodes: List[str],
864
+ image_id: Optional[str] | NotGiven = NOT_GIVEN,
865
+ user_data: Optional[str] | NotGiven = NOT_GIVEN,
866
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
867
+ # The extra values given here take precedence over values defined on the client or passed to this method.
868
+ extra_headers: Headers | None = None,
869
+ extra_query: Query | None = None,
870
+ extra_body: Body | None = None,
871
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
872
+ ) -> TaskIDList:
873
+ """
874
+ All cluster nodes must be specified to update the cluster image.
875
+
876
+ Args:
877
+ nodes: List of nodes uuids to be rebuild
878
+
879
+ image_id: AI GPU image ID
880
+
881
+ user_data:
882
+ String in base64 format.Examples of the user_data:
883
+ https://cloudinit.readthedocs.io/en/latest/topics/examples.html
884
+
885
+ extra_headers: Send extra headers
886
+
887
+ extra_query: Add additional query parameters to the request
888
+
889
+ extra_body: Add additional JSON properties to the request
890
+
891
+ timeout: Override the client-level default timeout for this request, in seconds
892
+ """
893
+ if project_id is None:
894
+ project_id = self._client._get_cloud_project_id_path_param()
895
+ if region_id is None:
896
+ region_id = self._client._get_cloud_region_id_path_param()
897
+ if not cluster_id:
898
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
899
+ return await self._post(
900
+ f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild",
901
+ body=await async_maybe_transform(
902
+ {
903
+ "nodes": nodes,
904
+ "image_id": image_id,
905
+ "user_data": user_data,
906
+ },
907
+ gpu_baremetal_cluster_rebuild_params.GPUBaremetalClusterRebuildParams,
908
+ ),
909
+ options=make_request_options(
910
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
911
+ ),
912
+ cast_to=TaskIDList,
913
+ )
914
+
915
+ async def resize(
916
+ self,
917
+ cluster_id: str,
918
+ *,
919
+ project_id: int | None = None,
920
+ region_id: int | None = None,
921
+ instances_count: int,
922
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
923
+ # The extra values given here take precedence over values defined on the client or passed to this method.
924
+ extra_headers: Headers | None = None,
925
+ extra_query: Query | None = None,
926
+ extra_body: Body | None = None,
927
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
928
+ ) -> TaskIDList:
929
+ """
930
+ Resize bare metal GPU cluster
931
+
932
+ Args:
933
+ instances_count: Resized (total) number of instances
934
+
935
+ extra_headers: Send extra headers
936
+
937
+ extra_query: Add additional query parameters to the request
938
+
939
+ extra_body: Add additional JSON properties to the request
940
+
941
+ timeout: Override the client-level default timeout for this request, in seconds
942
+ """
943
+ if project_id is None:
944
+ project_id = self._client._get_cloud_project_id_path_param()
945
+ if region_id is None:
946
+ region_id = self._client._get_cloud_region_id_path_param()
947
+ if not cluster_id:
948
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
949
+ return await self._post(
950
+ f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize",
951
+ body=await async_maybe_transform(
952
+ {"instances_count": instances_count},
953
+ gpu_baremetal_cluster_resize_params.GPUBaremetalClusterResizeParams,
954
+ ),
955
+ options=make_request_options(
956
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
957
+ ),
958
+ cast_to=TaskIDList,
959
+ )
960
+
961
+
962
+ class GPUBaremetalClustersResourceWithRawResponse:
963
+ def __init__(self, gpu_baremetal_clusters: GPUBaremetalClustersResource) -> None:
964
+ self._gpu_baremetal_clusters = gpu_baremetal_clusters
965
+
966
+ self.create = to_raw_response_wrapper(
967
+ gpu_baremetal_clusters.create,
968
+ )
969
+ self.list = to_raw_response_wrapper(
970
+ gpu_baremetal_clusters.list,
971
+ )
972
+ self.delete = to_raw_response_wrapper(
973
+ gpu_baremetal_clusters.delete,
974
+ )
975
+ self.get = to_raw_response_wrapper(
976
+ gpu_baremetal_clusters.get,
977
+ )
978
+ self.powercycle_all_servers = to_raw_response_wrapper(
979
+ gpu_baremetal_clusters.powercycle_all_servers,
980
+ )
981
+ self.reboot_all_servers = to_raw_response_wrapper(
982
+ gpu_baremetal_clusters.reboot_all_servers,
983
+ )
984
+ self.rebuild = to_raw_response_wrapper(
985
+ gpu_baremetal_clusters.rebuild,
986
+ )
987
+ self.resize = to_raw_response_wrapper(
988
+ gpu_baremetal_clusters.resize,
989
+ )
990
+
991
+ @cached_property
992
+ def interfaces(self) -> InterfacesResourceWithRawResponse:
993
+ return InterfacesResourceWithRawResponse(self._gpu_baremetal_clusters.interfaces)
994
+
995
+ @cached_property
996
+ def servers(self) -> ServersResourceWithRawResponse:
997
+ return ServersResourceWithRawResponse(self._gpu_baremetal_clusters.servers)
998
+
999
+ @cached_property
1000
+ def flavors(self) -> FlavorsResourceWithRawResponse:
1001
+ return FlavorsResourceWithRawResponse(self._gpu_baremetal_clusters.flavors)
1002
+
1003
+ @cached_property
1004
+ def images(self) -> ImagesResourceWithRawResponse:
1005
+ return ImagesResourceWithRawResponse(self._gpu_baremetal_clusters.images)
1006
+
1007
+
1008
+ class AsyncGPUBaremetalClustersResourceWithRawResponse:
1009
+ def __init__(self, gpu_baremetal_clusters: AsyncGPUBaremetalClustersResource) -> None:
1010
+ self._gpu_baremetal_clusters = gpu_baremetal_clusters
1011
+
1012
+ self.create = async_to_raw_response_wrapper(
1013
+ gpu_baremetal_clusters.create,
1014
+ )
1015
+ self.list = async_to_raw_response_wrapper(
1016
+ gpu_baremetal_clusters.list,
1017
+ )
1018
+ self.delete = async_to_raw_response_wrapper(
1019
+ gpu_baremetal_clusters.delete,
1020
+ )
1021
+ self.get = async_to_raw_response_wrapper(
1022
+ gpu_baremetal_clusters.get,
1023
+ )
1024
+ self.powercycle_all_servers = async_to_raw_response_wrapper(
1025
+ gpu_baremetal_clusters.powercycle_all_servers,
1026
+ )
1027
+ self.reboot_all_servers = async_to_raw_response_wrapper(
1028
+ gpu_baremetal_clusters.reboot_all_servers,
1029
+ )
1030
+ self.rebuild = async_to_raw_response_wrapper(
1031
+ gpu_baremetal_clusters.rebuild,
1032
+ )
1033
+ self.resize = async_to_raw_response_wrapper(
1034
+ gpu_baremetal_clusters.resize,
1035
+ )
1036
+
1037
+ @cached_property
1038
+ def interfaces(self) -> AsyncInterfacesResourceWithRawResponse:
1039
+ return AsyncInterfacesResourceWithRawResponse(self._gpu_baremetal_clusters.interfaces)
1040
+
1041
+ @cached_property
1042
+ def servers(self) -> AsyncServersResourceWithRawResponse:
1043
+ return AsyncServersResourceWithRawResponse(self._gpu_baremetal_clusters.servers)
1044
+
1045
+ @cached_property
1046
+ def flavors(self) -> AsyncFlavorsResourceWithRawResponse:
1047
+ return AsyncFlavorsResourceWithRawResponse(self._gpu_baremetal_clusters.flavors)
1048
+
1049
+ @cached_property
1050
+ def images(self) -> AsyncImagesResourceWithRawResponse:
1051
+ return AsyncImagesResourceWithRawResponse(self._gpu_baremetal_clusters.images)
1052
+
1053
+
1054
+ class GPUBaremetalClustersResourceWithStreamingResponse:
1055
+ def __init__(self, gpu_baremetal_clusters: GPUBaremetalClustersResource) -> None:
1056
+ self._gpu_baremetal_clusters = gpu_baremetal_clusters
1057
+
1058
+ self.create = to_streamed_response_wrapper(
1059
+ gpu_baremetal_clusters.create,
1060
+ )
1061
+ self.list = to_streamed_response_wrapper(
1062
+ gpu_baremetal_clusters.list,
1063
+ )
1064
+ self.delete = to_streamed_response_wrapper(
1065
+ gpu_baremetal_clusters.delete,
1066
+ )
1067
+ self.get = to_streamed_response_wrapper(
1068
+ gpu_baremetal_clusters.get,
1069
+ )
1070
+ self.powercycle_all_servers = to_streamed_response_wrapper(
1071
+ gpu_baremetal_clusters.powercycle_all_servers,
1072
+ )
1073
+ self.reboot_all_servers = to_streamed_response_wrapper(
1074
+ gpu_baremetal_clusters.reboot_all_servers,
1075
+ )
1076
+ self.rebuild = to_streamed_response_wrapper(
1077
+ gpu_baremetal_clusters.rebuild,
1078
+ )
1079
+ self.resize = to_streamed_response_wrapper(
1080
+ gpu_baremetal_clusters.resize,
1081
+ )
1082
+
1083
+ @cached_property
1084
+ def interfaces(self) -> InterfacesResourceWithStreamingResponse:
1085
+ return InterfacesResourceWithStreamingResponse(self._gpu_baremetal_clusters.interfaces)
1086
+
1087
+ @cached_property
1088
+ def servers(self) -> ServersResourceWithStreamingResponse:
1089
+ return ServersResourceWithStreamingResponse(self._gpu_baremetal_clusters.servers)
1090
+
1091
+ @cached_property
1092
+ def flavors(self) -> FlavorsResourceWithStreamingResponse:
1093
+ return FlavorsResourceWithStreamingResponse(self._gpu_baremetal_clusters.flavors)
1094
+
1095
+ @cached_property
1096
+ def images(self) -> ImagesResourceWithStreamingResponse:
1097
+ return ImagesResourceWithStreamingResponse(self._gpu_baremetal_clusters.images)
1098
+
1099
+
1100
+ class AsyncGPUBaremetalClustersResourceWithStreamingResponse:
1101
+ def __init__(self, gpu_baremetal_clusters: AsyncGPUBaremetalClustersResource) -> None:
1102
+ self._gpu_baremetal_clusters = gpu_baremetal_clusters
1103
+
1104
+ self.create = async_to_streamed_response_wrapper(
1105
+ gpu_baremetal_clusters.create,
1106
+ )
1107
+ self.list = async_to_streamed_response_wrapper(
1108
+ gpu_baremetal_clusters.list,
1109
+ )
1110
+ self.delete = async_to_streamed_response_wrapper(
1111
+ gpu_baremetal_clusters.delete,
1112
+ )
1113
+ self.get = async_to_streamed_response_wrapper(
1114
+ gpu_baremetal_clusters.get,
1115
+ )
1116
+ self.powercycle_all_servers = async_to_streamed_response_wrapper(
1117
+ gpu_baremetal_clusters.powercycle_all_servers,
1118
+ )
1119
+ self.reboot_all_servers = async_to_streamed_response_wrapper(
1120
+ gpu_baremetal_clusters.reboot_all_servers,
1121
+ )
1122
+ self.rebuild = async_to_streamed_response_wrapper(
1123
+ gpu_baremetal_clusters.rebuild,
1124
+ )
1125
+ self.resize = async_to_streamed_response_wrapper(
1126
+ gpu_baremetal_clusters.resize,
1127
+ )
1128
+
1129
+ @cached_property
1130
+ def interfaces(self) -> AsyncInterfacesResourceWithStreamingResponse:
1131
+ return AsyncInterfacesResourceWithStreamingResponse(self._gpu_baremetal_clusters.interfaces)
1132
+
1133
+ @cached_property
1134
+ def servers(self) -> AsyncServersResourceWithStreamingResponse:
1135
+ return AsyncServersResourceWithStreamingResponse(self._gpu_baremetal_clusters.servers)
1136
+
1137
+ @cached_property
1138
+ def flavors(self) -> AsyncFlavorsResourceWithStreamingResponse:
1139
+ return AsyncFlavorsResourceWithStreamingResponse(self._gpu_baremetal_clusters.flavors)
1140
+
1141
+ @cached_property
1142
+ def images(self) -> AsyncImagesResourceWithStreamingResponse:
1143
+ return AsyncImagesResourceWithStreamingResponse(self._gpu_baremetal_clusters.images)