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,1098 @@
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 Iterable
6
+ from typing_extensions import Literal, overload
7
+
8
+ import httpx
9
+
10
+ from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven
11
+ from ...._utils import maybe_transform, async_maybe_transform
12
+ from ...._compat import cached_property
13
+ from ...._resource import SyncAPIResource, AsyncAPIResource
14
+ from ...._response import (
15
+ to_raw_response_wrapper,
16
+ to_streamed_response_wrapper,
17
+ async_to_raw_response_wrapper,
18
+ async_to_streamed_response_wrapper,
19
+ )
20
+ from ...._base_client import make_request_options
21
+ from ....types.cloud.console import Console
22
+ from ....types.cloud.task_id_list import TaskIDList
23
+ from ....types.cloud.gpu_baremetal_clusters import (
24
+ server_delete_params,
25
+ server_attach_interface_params,
26
+ server_detach_interface_params,
27
+ )
28
+ from ....types.cloud.gpu_baremetal_cluster_server import GPUBaremetalClusterServer
29
+
30
+ __all__ = ["ServersResource", "AsyncServersResource"]
31
+
32
+
33
+ class ServersResource(SyncAPIResource):
34
+ @cached_property
35
+ def with_raw_response(self) -> ServersResourceWithRawResponse:
36
+ """
37
+ This property can be used as a prefix for any HTTP method call to return
38
+ the raw response object instead of the parsed content.
39
+
40
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
41
+ """
42
+ return ServersResourceWithRawResponse(self)
43
+
44
+ @cached_property
45
+ def with_streaming_response(self) -> ServersResourceWithStreamingResponse:
46
+ """
47
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
48
+
49
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
50
+ """
51
+ return ServersResourceWithStreamingResponse(self)
52
+
53
+ def delete(
54
+ self,
55
+ instance_id: str,
56
+ *,
57
+ project_id: int | None = None,
58
+ region_id: int | None = None,
59
+ cluster_id: str,
60
+ delete_floatings: bool | NotGiven = NOT_GIVEN,
61
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
62
+ # The extra values given here take precedence over values defined on the client or passed to this method.
63
+ extra_headers: Headers | None = None,
64
+ extra_query: Query | None = None,
65
+ extra_body: Body | None = None,
66
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
67
+ ) -> TaskIDList:
68
+ """
69
+ Delete bare metal GPU server from cluster
70
+
71
+ Args:
72
+ delete_floatings: Set False if you do not want to delete assigned floating IPs. By default, it's
73
+ True.
74
+
75
+ extra_headers: Send extra headers
76
+
77
+ extra_query: Add additional query parameters to the request
78
+
79
+ extra_body: Add additional JSON properties to the request
80
+
81
+ timeout: Override the client-level default timeout for this request, in seconds
82
+ """
83
+ if project_id is None:
84
+ project_id = self._client._get_cloud_project_id_path_param()
85
+ if region_id is None:
86
+ region_id = self._client._get_cloud_region_id_path_param()
87
+ if not cluster_id:
88
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
89
+ if not instance_id:
90
+ raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
91
+ return self._delete(
92
+ f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/node/{instance_id}",
93
+ options=make_request_options(
94
+ extra_headers=extra_headers,
95
+ extra_query=extra_query,
96
+ extra_body=extra_body,
97
+ timeout=timeout,
98
+ query=maybe_transform({"delete_floatings": delete_floatings}, server_delete_params.ServerDeleteParams),
99
+ ),
100
+ cast_to=TaskIDList,
101
+ )
102
+
103
+ @overload
104
+ def attach_interface(
105
+ self,
106
+ instance_id: str,
107
+ *,
108
+ project_id: int | None = None,
109
+ region_id: int | None = None,
110
+ ddos_profile: server_attach_interface_params.NewInterfaceExternalExtendSchemaWithDDOSDDOSProfile
111
+ | NotGiven = NOT_GIVEN,
112
+ interface_name: str | NotGiven = NOT_GIVEN,
113
+ ip_family: Literal["dual", "ipv4", "ipv6"] | NotGiven = NOT_GIVEN,
114
+ port_group: int | NotGiven = NOT_GIVEN,
115
+ security_groups: Iterable[server_attach_interface_params.NewInterfaceExternalExtendSchemaWithDDOSSecurityGroup]
116
+ | NotGiven = NOT_GIVEN,
117
+ type: str | NotGiven = NOT_GIVEN,
118
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
119
+ # The extra values given here take precedence over values defined on the client or passed to this method.
120
+ extra_headers: Headers | None = None,
121
+ extra_query: Query | None = None,
122
+ extra_body: Body | None = None,
123
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
124
+ ) -> TaskIDList:
125
+ """
126
+ Attach interface to bare metal GPU cluster server
127
+
128
+ Args:
129
+ ddos_profile: Advanced DDoS protection.
130
+
131
+ interface_name: Interface name
132
+
133
+ ip_family: Which subnets should be selected: IPv4, IPv6 or use dual stack.
134
+
135
+ port_group: Each group will be added to the separate trunk.
136
+
137
+ security_groups: List of security group IDs
138
+
139
+ type: Must be 'external'. Union tag
140
+
141
+ extra_headers: Send extra headers
142
+
143
+ extra_query: Add additional query parameters to the request
144
+
145
+ extra_body: Add additional JSON properties to the request
146
+
147
+ timeout: Override the client-level default timeout for this request, in seconds
148
+ """
149
+ ...
150
+
151
+ @overload
152
+ def attach_interface(
153
+ self,
154
+ instance_id: str,
155
+ *,
156
+ project_id: int | None = None,
157
+ region_id: int | None = None,
158
+ subnet_id: str,
159
+ ddos_profile: server_attach_interface_params.NewInterfaceSpecificSubnetSchemaDDOSProfile | NotGiven = NOT_GIVEN,
160
+ interface_name: str | NotGiven = NOT_GIVEN,
161
+ port_group: int | NotGiven = NOT_GIVEN,
162
+ security_groups: Iterable[server_attach_interface_params.NewInterfaceSpecificSubnetSchemaSecurityGroup]
163
+ | NotGiven = NOT_GIVEN,
164
+ type: str | NotGiven = NOT_GIVEN,
165
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
166
+ # The extra values given here take precedence over values defined on the client or passed to this method.
167
+ extra_headers: Headers | None = None,
168
+ extra_query: Query | None = None,
169
+ extra_body: Body | None = None,
170
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
171
+ ) -> TaskIDList:
172
+ """
173
+ Attach interface to bare metal GPU cluster server
174
+
175
+ Args:
176
+ subnet_id: Port will get an IP address from this subnet
177
+
178
+ ddos_profile: Advanced DDoS protection.
179
+
180
+ interface_name: Interface name
181
+
182
+ port_group: Each group will be added to the separate trunk.
183
+
184
+ security_groups: List of security group IDs
185
+
186
+ type: Must be 'subnet'
187
+
188
+ extra_headers: Send extra headers
189
+
190
+ extra_query: Add additional query parameters to the request
191
+
192
+ extra_body: Add additional JSON properties to the request
193
+
194
+ timeout: Override the client-level default timeout for this request, in seconds
195
+ """
196
+ ...
197
+
198
+ @overload
199
+ def attach_interface(
200
+ self,
201
+ instance_id: str,
202
+ *,
203
+ project_id: int | None = None,
204
+ region_id: int | None = None,
205
+ network_id: str,
206
+ ddos_profile: server_attach_interface_params.NewInterfaceAnySubnetSchemaDDOSProfile | NotGiven = NOT_GIVEN,
207
+ interface_name: str | NotGiven = NOT_GIVEN,
208
+ ip_family: Literal["dual", "ipv4", "ipv6"] | NotGiven = NOT_GIVEN,
209
+ port_group: int | NotGiven = NOT_GIVEN,
210
+ security_groups: Iterable[server_attach_interface_params.NewInterfaceAnySubnetSchemaSecurityGroup]
211
+ | NotGiven = NOT_GIVEN,
212
+ type: str | NotGiven = NOT_GIVEN,
213
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
214
+ # The extra values given here take precedence over values defined on the client or passed to this method.
215
+ extra_headers: Headers | None = None,
216
+ extra_query: Query | None = None,
217
+ extra_body: Body | None = None,
218
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
219
+ ) -> TaskIDList:
220
+ """
221
+ Attach interface to bare metal GPU cluster server
222
+
223
+ Args:
224
+ network_id: Port will get an IP address in this network subnet
225
+
226
+ ddos_profile: Advanced DDoS protection.
227
+
228
+ interface_name: Interface name
229
+
230
+ ip_family: Which subnets should be selected: IPv4, IPv6 or use dual stack.
231
+
232
+ port_group: Each group will be added to the separate trunk.
233
+
234
+ security_groups: List of security group IDs
235
+
236
+ type: Must be 'any_subnet'
237
+
238
+ extra_headers: Send extra headers
239
+
240
+ extra_query: Add additional query parameters to the request
241
+
242
+ extra_body: Add additional JSON properties to the request
243
+
244
+ timeout: Override the client-level default timeout for this request, in seconds
245
+ """
246
+ ...
247
+
248
+ @overload
249
+ def attach_interface(
250
+ self,
251
+ instance_id: str,
252
+ *,
253
+ project_id: int | None = None,
254
+ region_id: int | None = None,
255
+ port_id: str,
256
+ ddos_profile: server_attach_interface_params.NewInterfaceReservedFixedIPSchemaDDOSProfile
257
+ | NotGiven = NOT_GIVEN,
258
+ interface_name: str | NotGiven = NOT_GIVEN,
259
+ port_group: int | NotGiven = NOT_GIVEN,
260
+ security_groups: Iterable[server_attach_interface_params.NewInterfaceReservedFixedIPSchemaSecurityGroup]
261
+ | NotGiven = NOT_GIVEN,
262
+ type: str | NotGiven = NOT_GIVEN,
263
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
264
+ # The extra values given here take precedence over values defined on the client or passed to this method.
265
+ extra_headers: Headers | None = None,
266
+ extra_query: Query | None = None,
267
+ extra_body: Body | None = None,
268
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
269
+ ) -> TaskIDList:
270
+ """
271
+ Attach interface to bare metal GPU cluster server
272
+
273
+ Args:
274
+ port_id: Port ID
275
+
276
+ ddos_profile: Advanced DDoS protection.
277
+
278
+ interface_name: Interface name
279
+
280
+ port_group: Each group will be added to the separate trunk.
281
+
282
+ security_groups: List of security group IDs
283
+
284
+ type: Must be 'reserved_fixed_ip'. Union tag
285
+
286
+ extra_headers: Send extra headers
287
+
288
+ extra_query: Add additional query parameters to the request
289
+
290
+ extra_body: Add additional JSON properties to the request
291
+
292
+ timeout: Override the client-level default timeout for this request, in seconds
293
+ """
294
+ ...
295
+
296
+ def attach_interface(
297
+ self,
298
+ instance_id: str,
299
+ *,
300
+ project_id: int | None = None,
301
+ region_id: int | None = None,
302
+ ddos_profile: server_attach_interface_params.NewInterfaceExternalExtendSchemaWithDDOSDDOSProfile
303
+ | NotGiven = NOT_GIVEN,
304
+ interface_name: str | NotGiven = NOT_GIVEN,
305
+ ip_family: Literal["dual", "ipv4", "ipv6"] | NotGiven = NOT_GIVEN,
306
+ port_group: int | NotGiven = NOT_GIVEN,
307
+ security_groups: Iterable[server_attach_interface_params.NewInterfaceExternalExtendSchemaWithDDOSSecurityGroup]
308
+ | NotGiven = NOT_GIVEN,
309
+ type: str | NotGiven = NOT_GIVEN,
310
+ subnet_id: str | NotGiven = NOT_GIVEN,
311
+ network_id: str | NotGiven = NOT_GIVEN,
312
+ port_id: str | NotGiven = NOT_GIVEN,
313
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
314
+ # The extra values given here take precedence over values defined on the client or passed to this method.
315
+ extra_headers: Headers | None = None,
316
+ extra_query: Query | None = None,
317
+ extra_body: Body | None = None,
318
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
319
+ ) -> TaskIDList:
320
+ if project_id is None:
321
+ project_id = self._client._get_cloud_project_id_path_param()
322
+ if region_id is None:
323
+ region_id = self._client._get_cloud_region_id_path_param()
324
+ if not instance_id:
325
+ raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
326
+ return self._post(
327
+ f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/attach_interface",
328
+ body=maybe_transform(
329
+ {
330
+ "ddos_profile": ddos_profile,
331
+ "interface_name": interface_name,
332
+ "ip_family": ip_family,
333
+ "port_group": port_group,
334
+ "security_groups": security_groups,
335
+ "type": type,
336
+ "subnet_id": subnet_id,
337
+ "network_id": network_id,
338
+ "port_id": port_id,
339
+ },
340
+ server_attach_interface_params.ServerAttachInterfaceParams,
341
+ ),
342
+ options=make_request_options(
343
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
344
+ ),
345
+ cast_to=TaskIDList,
346
+ )
347
+
348
+ def detach_interface(
349
+ self,
350
+ instance_id: str,
351
+ *,
352
+ project_id: int | None = None,
353
+ region_id: int | None = None,
354
+ ip_address: str,
355
+ port_id: str,
356
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
357
+ # The extra values given here take precedence over values defined on the client or passed to this method.
358
+ extra_headers: Headers | None = None,
359
+ extra_query: Query | None = None,
360
+ extra_body: Body | None = None,
361
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
362
+ ) -> TaskIDList:
363
+ """
364
+ Detach interface from bare metal GPU cluster server
365
+
366
+ Args:
367
+ ip_address: IP address
368
+
369
+ port_id: ID of the port
370
+
371
+ extra_headers: Send extra headers
372
+
373
+ extra_query: Add additional query parameters to the request
374
+
375
+ extra_body: Add additional JSON properties to the request
376
+
377
+ timeout: Override the client-level default timeout for this request, in seconds
378
+ """
379
+ if project_id is None:
380
+ project_id = self._client._get_cloud_project_id_path_param()
381
+ if region_id is None:
382
+ region_id = self._client._get_cloud_region_id_path_param()
383
+ if not instance_id:
384
+ raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
385
+ return self._post(
386
+ f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/detach_interface",
387
+ body=maybe_transform(
388
+ {
389
+ "ip_address": ip_address,
390
+ "port_id": port_id,
391
+ },
392
+ server_detach_interface_params.ServerDetachInterfaceParams,
393
+ ),
394
+ options=make_request_options(
395
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
396
+ ),
397
+ cast_to=TaskIDList,
398
+ )
399
+
400
+ def get_console(
401
+ self,
402
+ instance_id: str,
403
+ *,
404
+ project_id: int | None = None,
405
+ region_id: int | None = None,
406
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
407
+ # The extra values given here take precedence over values defined on the client or passed to this method.
408
+ extra_headers: Headers | None = None,
409
+ extra_query: Query | None = None,
410
+ extra_body: Body | None = None,
411
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
412
+ ) -> Console:
413
+ """
414
+ Get bare metal GPU cluster server console URL
415
+
416
+ Args:
417
+ extra_headers: Send extra headers
418
+
419
+ extra_query: Add additional query parameters to the request
420
+
421
+ extra_body: Add additional JSON properties to the request
422
+
423
+ timeout: Override the client-level default timeout for this request, in seconds
424
+ """
425
+ if project_id is None:
426
+ project_id = self._client._get_cloud_project_id_path_param()
427
+ if region_id is None:
428
+ region_id = self._client._get_cloud_region_id_path_param()
429
+ if not instance_id:
430
+ raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
431
+ return self._get(
432
+ f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/get_console",
433
+ options=make_request_options(
434
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
435
+ ),
436
+ cast_to=Console,
437
+ )
438
+
439
+ def powercycle(
440
+ self,
441
+ instance_id: str,
442
+ *,
443
+ project_id: int | None = None,
444
+ region_id: int | None = None,
445
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
446
+ # The extra values given here take precedence over values defined on the client or passed to this method.
447
+ extra_headers: Headers | None = None,
448
+ extra_query: Query | None = None,
449
+ extra_body: Body | None = None,
450
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
451
+ ) -> GPUBaremetalClusterServer:
452
+ """
453
+ Stops and then starts the server, effectively performing a hard reboot.
454
+
455
+ Args:
456
+ extra_headers: Send extra headers
457
+
458
+ extra_query: Add additional query parameters to the request
459
+
460
+ extra_body: Add additional JSON properties to the request
461
+
462
+ timeout: Override the client-level default timeout for this request, in seconds
463
+ """
464
+ if project_id is None:
465
+ project_id = self._client._get_cloud_project_id_path_param()
466
+ if region_id is None:
467
+ region_id = self._client._get_cloud_region_id_path_param()
468
+ if not instance_id:
469
+ raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
470
+ return self._post(
471
+ f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/powercycle",
472
+ options=make_request_options(
473
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
474
+ ),
475
+ cast_to=GPUBaremetalClusterServer,
476
+ )
477
+
478
+ def reboot(
479
+ self,
480
+ instance_id: str,
481
+ *,
482
+ project_id: int | None = None,
483
+ region_id: int | None = None,
484
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
485
+ # The extra values given here take precedence over values defined on the client or passed to this method.
486
+ extra_headers: Headers | None = None,
487
+ extra_query: Query | None = None,
488
+ extra_body: Body | None = None,
489
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
490
+ ) -> GPUBaremetalClusterServer:
491
+ """
492
+ Reboot one bare metal GPU cluster server
493
+
494
+ Args:
495
+ extra_headers: Send extra headers
496
+
497
+ extra_query: Add additional query parameters to the request
498
+
499
+ extra_body: Add additional JSON properties to the request
500
+
501
+ timeout: Override the client-level default timeout for this request, in seconds
502
+ """
503
+ if project_id is None:
504
+ project_id = self._client._get_cloud_project_id_path_param()
505
+ if region_id is None:
506
+ region_id = self._client._get_cloud_region_id_path_param()
507
+ if not instance_id:
508
+ raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
509
+ return self._post(
510
+ f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/reboot",
511
+ options=make_request_options(
512
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
513
+ ),
514
+ cast_to=GPUBaremetalClusterServer,
515
+ )
516
+
517
+
518
+ class AsyncServersResource(AsyncAPIResource):
519
+ @cached_property
520
+ def with_raw_response(self) -> AsyncServersResourceWithRawResponse:
521
+ """
522
+ This property can be used as a prefix for any HTTP method call to return
523
+ the raw response object instead of the parsed content.
524
+
525
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
526
+ """
527
+ return AsyncServersResourceWithRawResponse(self)
528
+
529
+ @cached_property
530
+ def with_streaming_response(self) -> AsyncServersResourceWithStreamingResponse:
531
+ """
532
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
533
+
534
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
535
+ """
536
+ return AsyncServersResourceWithStreamingResponse(self)
537
+
538
+ async def delete(
539
+ self,
540
+ instance_id: str,
541
+ *,
542
+ project_id: int | None = None,
543
+ region_id: int | None = None,
544
+ cluster_id: str,
545
+ delete_floatings: bool | NotGiven = NOT_GIVEN,
546
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
547
+ # The extra values given here take precedence over values defined on the client or passed to this method.
548
+ extra_headers: Headers | None = None,
549
+ extra_query: Query | None = None,
550
+ extra_body: Body | None = None,
551
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
552
+ ) -> TaskIDList:
553
+ """
554
+ Delete bare metal GPU server from cluster
555
+
556
+ Args:
557
+ delete_floatings: Set False if you do not want to delete assigned floating IPs. By default, it's
558
+ True.
559
+
560
+ extra_headers: Send extra headers
561
+
562
+ extra_query: Add additional query parameters to the request
563
+
564
+ extra_body: Add additional JSON properties to the request
565
+
566
+ timeout: Override the client-level default timeout for this request, in seconds
567
+ """
568
+ if project_id is None:
569
+ project_id = self._client._get_cloud_project_id_path_param()
570
+ if region_id is None:
571
+ region_id = self._client._get_cloud_region_id_path_param()
572
+ if not cluster_id:
573
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
574
+ if not instance_id:
575
+ raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
576
+ return await self._delete(
577
+ f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/node/{instance_id}",
578
+ options=make_request_options(
579
+ extra_headers=extra_headers,
580
+ extra_query=extra_query,
581
+ extra_body=extra_body,
582
+ timeout=timeout,
583
+ query=await async_maybe_transform(
584
+ {"delete_floatings": delete_floatings}, server_delete_params.ServerDeleteParams
585
+ ),
586
+ ),
587
+ cast_to=TaskIDList,
588
+ )
589
+
590
+ @overload
591
+ async def attach_interface(
592
+ self,
593
+ instance_id: str,
594
+ *,
595
+ project_id: int | None = None,
596
+ region_id: int | None = None,
597
+ ddos_profile: server_attach_interface_params.NewInterfaceExternalExtendSchemaWithDDOSDDOSProfile
598
+ | NotGiven = NOT_GIVEN,
599
+ interface_name: str | NotGiven = NOT_GIVEN,
600
+ ip_family: Literal["dual", "ipv4", "ipv6"] | NotGiven = NOT_GIVEN,
601
+ port_group: int | NotGiven = NOT_GIVEN,
602
+ security_groups: Iterable[server_attach_interface_params.NewInterfaceExternalExtendSchemaWithDDOSSecurityGroup]
603
+ | NotGiven = NOT_GIVEN,
604
+ type: str | NotGiven = NOT_GIVEN,
605
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
606
+ # The extra values given here take precedence over values defined on the client or passed to this method.
607
+ extra_headers: Headers | None = None,
608
+ extra_query: Query | None = None,
609
+ extra_body: Body | None = None,
610
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
611
+ ) -> TaskIDList:
612
+ """
613
+ Attach interface to bare metal GPU cluster server
614
+
615
+ Args:
616
+ ddos_profile: Advanced DDoS protection.
617
+
618
+ interface_name: Interface name
619
+
620
+ ip_family: Which subnets should be selected: IPv4, IPv6 or use dual stack.
621
+
622
+ port_group: Each group will be added to the separate trunk.
623
+
624
+ security_groups: List of security group IDs
625
+
626
+ type: Must be 'external'. Union tag
627
+
628
+ extra_headers: Send extra headers
629
+
630
+ extra_query: Add additional query parameters to the request
631
+
632
+ extra_body: Add additional JSON properties to the request
633
+
634
+ timeout: Override the client-level default timeout for this request, in seconds
635
+ """
636
+ ...
637
+
638
+ @overload
639
+ async def attach_interface(
640
+ self,
641
+ instance_id: str,
642
+ *,
643
+ project_id: int | None = None,
644
+ region_id: int | None = None,
645
+ subnet_id: str,
646
+ ddos_profile: server_attach_interface_params.NewInterfaceSpecificSubnetSchemaDDOSProfile | NotGiven = NOT_GIVEN,
647
+ interface_name: str | NotGiven = NOT_GIVEN,
648
+ port_group: int | NotGiven = NOT_GIVEN,
649
+ security_groups: Iterable[server_attach_interface_params.NewInterfaceSpecificSubnetSchemaSecurityGroup]
650
+ | NotGiven = NOT_GIVEN,
651
+ type: str | NotGiven = NOT_GIVEN,
652
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
653
+ # The extra values given here take precedence over values defined on the client or passed to this method.
654
+ extra_headers: Headers | None = None,
655
+ extra_query: Query | None = None,
656
+ extra_body: Body | None = None,
657
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
658
+ ) -> TaskIDList:
659
+ """
660
+ Attach interface to bare metal GPU cluster server
661
+
662
+ Args:
663
+ subnet_id: Port will get an IP address from this subnet
664
+
665
+ ddos_profile: Advanced DDoS protection.
666
+
667
+ interface_name: Interface name
668
+
669
+ port_group: Each group will be added to the separate trunk.
670
+
671
+ security_groups: List of security group IDs
672
+
673
+ type: Must be 'subnet'
674
+
675
+ extra_headers: Send extra headers
676
+
677
+ extra_query: Add additional query parameters to the request
678
+
679
+ extra_body: Add additional JSON properties to the request
680
+
681
+ timeout: Override the client-level default timeout for this request, in seconds
682
+ """
683
+ ...
684
+
685
+ @overload
686
+ async def attach_interface(
687
+ self,
688
+ instance_id: str,
689
+ *,
690
+ project_id: int | None = None,
691
+ region_id: int | None = None,
692
+ network_id: str,
693
+ ddos_profile: server_attach_interface_params.NewInterfaceAnySubnetSchemaDDOSProfile | NotGiven = NOT_GIVEN,
694
+ interface_name: str | NotGiven = NOT_GIVEN,
695
+ ip_family: Literal["dual", "ipv4", "ipv6"] | NotGiven = NOT_GIVEN,
696
+ port_group: int | NotGiven = NOT_GIVEN,
697
+ security_groups: Iterable[server_attach_interface_params.NewInterfaceAnySubnetSchemaSecurityGroup]
698
+ | NotGiven = NOT_GIVEN,
699
+ type: str | NotGiven = NOT_GIVEN,
700
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
701
+ # The extra values given here take precedence over values defined on the client or passed to this method.
702
+ extra_headers: Headers | None = None,
703
+ extra_query: Query | None = None,
704
+ extra_body: Body | None = None,
705
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
706
+ ) -> TaskIDList:
707
+ """
708
+ Attach interface to bare metal GPU cluster server
709
+
710
+ Args:
711
+ network_id: Port will get an IP address in this network subnet
712
+
713
+ ddos_profile: Advanced DDoS protection.
714
+
715
+ interface_name: Interface name
716
+
717
+ ip_family: Which subnets should be selected: IPv4, IPv6 or use dual stack.
718
+
719
+ port_group: Each group will be added to the separate trunk.
720
+
721
+ security_groups: List of security group IDs
722
+
723
+ type: Must be 'any_subnet'
724
+
725
+ extra_headers: Send extra headers
726
+
727
+ extra_query: Add additional query parameters to the request
728
+
729
+ extra_body: Add additional JSON properties to the request
730
+
731
+ timeout: Override the client-level default timeout for this request, in seconds
732
+ """
733
+ ...
734
+
735
+ @overload
736
+ async def attach_interface(
737
+ self,
738
+ instance_id: str,
739
+ *,
740
+ project_id: int | None = None,
741
+ region_id: int | None = None,
742
+ port_id: str,
743
+ ddos_profile: server_attach_interface_params.NewInterfaceReservedFixedIPSchemaDDOSProfile
744
+ | NotGiven = NOT_GIVEN,
745
+ interface_name: str | NotGiven = NOT_GIVEN,
746
+ port_group: int | NotGiven = NOT_GIVEN,
747
+ security_groups: Iterable[server_attach_interface_params.NewInterfaceReservedFixedIPSchemaSecurityGroup]
748
+ | NotGiven = NOT_GIVEN,
749
+ type: str | NotGiven = NOT_GIVEN,
750
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
751
+ # The extra values given here take precedence over values defined on the client or passed to this method.
752
+ extra_headers: Headers | None = None,
753
+ extra_query: Query | None = None,
754
+ extra_body: Body | None = None,
755
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
756
+ ) -> TaskIDList:
757
+ """
758
+ Attach interface to bare metal GPU cluster server
759
+
760
+ Args:
761
+ port_id: Port ID
762
+
763
+ ddos_profile: Advanced DDoS protection.
764
+
765
+ interface_name: Interface name
766
+
767
+ port_group: Each group will be added to the separate trunk.
768
+
769
+ security_groups: List of security group IDs
770
+
771
+ type: Must be 'reserved_fixed_ip'. Union tag
772
+
773
+ extra_headers: Send extra headers
774
+
775
+ extra_query: Add additional query parameters to the request
776
+
777
+ extra_body: Add additional JSON properties to the request
778
+
779
+ timeout: Override the client-level default timeout for this request, in seconds
780
+ """
781
+ ...
782
+
783
+ async def attach_interface(
784
+ self,
785
+ instance_id: str,
786
+ *,
787
+ project_id: int | None = None,
788
+ region_id: int | None = None,
789
+ ddos_profile: server_attach_interface_params.NewInterfaceExternalExtendSchemaWithDDOSDDOSProfile
790
+ | NotGiven = NOT_GIVEN,
791
+ interface_name: str | NotGiven = NOT_GIVEN,
792
+ ip_family: Literal["dual", "ipv4", "ipv6"] | NotGiven = NOT_GIVEN,
793
+ port_group: int | NotGiven = NOT_GIVEN,
794
+ security_groups: Iterable[server_attach_interface_params.NewInterfaceExternalExtendSchemaWithDDOSSecurityGroup]
795
+ | NotGiven = NOT_GIVEN,
796
+ type: str | NotGiven = NOT_GIVEN,
797
+ subnet_id: str | NotGiven = NOT_GIVEN,
798
+ network_id: str | NotGiven = NOT_GIVEN,
799
+ port_id: str | NotGiven = NOT_GIVEN,
800
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
801
+ # The extra values given here take precedence over values defined on the client or passed to this method.
802
+ extra_headers: Headers | None = None,
803
+ extra_query: Query | None = None,
804
+ extra_body: Body | None = None,
805
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
806
+ ) -> TaskIDList:
807
+ if project_id is None:
808
+ project_id = self._client._get_cloud_project_id_path_param()
809
+ if region_id is None:
810
+ region_id = self._client._get_cloud_region_id_path_param()
811
+ if not instance_id:
812
+ raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
813
+ return await self._post(
814
+ f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/attach_interface",
815
+ body=await async_maybe_transform(
816
+ {
817
+ "ddos_profile": ddos_profile,
818
+ "interface_name": interface_name,
819
+ "ip_family": ip_family,
820
+ "port_group": port_group,
821
+ "security_groups": security_groups,
822
+ "type": type,
823
+ "subnet_id": subnet_id,
824
+ "network_id": network_id,
825
+ "port_id": port_id,
826
+ },
827
+ server_attach_interface_params.ServerAttachInterfaceParams,
828
+ ),
829
+ options=make_request_options(
830
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
831
+ ),
832
+ cast_to=TaskIDList,
833
+ )
834
+
835
+ async def detach_interface(
836
+ self,
837
+ instance_id: str,
838
+ *,
839
+ project_id: int | None = None,
840
+ region_id: int | None = None,
841
+ ip_address: str,
842
+ port_id: str,
843
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
844
+ # The extra values given here take precedence over values defined on the client or passed to this method.
845
+ extra_headers: Headers | None = None,
846
+ extra_query: Query | None = None,
847
+ extra_body: Body | None = None,
848
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
849
+ ) -> TaskIDList:
850
+ """
851
+ Detach interface from bare metal GPU cluster server
852
+
853
+ Args:
854
+ ip_address: IP address
855
+
856
+ port_id: ID of the port
857
+
858
+ extra_headers: Send extra headers
859
+
860
+ extra_query: Add additional query parameters to the request
861
+
862
+ extra_body: Add additional JSON properties to the request
863
+
864
+ timeout: Override the client-level default timeout for this request, in seconds
865
+ """
866
+ if project_id is None:
867
+ project_id = self._client._get_cloud_project_id_path_param()
868
+ if region_id is None:
869
+ region_id = self._client._get_cloud_region_id_path_param()
870
+ if not instance_id:
871
+ raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
872
+ return await self._post(
873
+ f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/detach_interface",
874
+ body=await async_maybe_transform(
875
+ {
876
+ "ip_address": ip_address,
877
+ "port_id": port_id,
878
+ },
879
+ server_detach_interface_params.ServerDetachInterfaceParams,
880
+ ),
881
+ options=make_request_options(
882
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
883
+ ),
884
+ cast_to=TaskIDList,
885
+ )
886
+
887
+ async def get_console(
888
+ self,
889
+ instance_id: str,
890
+ *,
891
+ project_id: int | None = None,
892
+ region_id: int | None = None,
893
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
894
+ # The extra values given here take precedence over values defined on the client or passed to this method.
895
+ extra_headers: Headers | None = None,
896
+ extra_query: Query | None = None,
897
+ extra_body: Body | None = None,
898
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
899
+ ) -> Console:
900
+ """
901
+ Get bare metal GPU cluster server console URL
902
+
903
+ Args:
904
+ extra_headers: Send extra headers
905
+
906
+ extra_query: Add additional query parameters to the request
907
+
908
+ extra_body: Add additional JSON properties to the request
909
+
910
+ timeout: Override the client-level default timeout for this request, in seconds
911
+ """
912
+ if project_id is None:
913
+ project_id = self._client._get_cloud_project_id_path_param()
914
+ if region_id is None:
915
+ region_id = self._client._get_cloud_region_id_path_param()
916
+ if not instance_id:
917
+ raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
918
+ return await self._get(
919
+ f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/get_console",
920
+ options=make_request_options(
921
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
922
+ ),
923
+ cast_to=Console,
924
+ )
925
+
926
+ async def powercycle(
927
+ self,
928
+ instance_id: str,
929
+ *,
930
+ project_id: int | None = None,
931
+ region_id: int | None = None,
932
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
933
+ # The extra values given here take precedence over values defined on the client or passed to this method.
934
+ extra_headers: Headers | None = None,
935
+ extra_query: Query | None = None,
936
+ extra_body: Body | None = None,
937
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
938
+ ) -> GPUBaremetalClusterServer:
939
+ """
940
+ Stops and then starts the server, effectively performing a hard reboot.
941
+
942
+ Args:
943
+ extra_headers: Send extra headers
944
+
945
+ extra_query: Add additional query parameters to the request
946
+
947
+ extra_body: Add additional JSON properties to the request
948
+
949
+ timeout: Override the client-level default timeout for this request, in seconds
950
+ """
951
+ if project_id is None:
952
+ project_id = self._client._get_cloud_project_id_path_param()
953
+ if region_id is None:
954
+ region_id = self._client._get_cloud_region_id_path_param()
955
+ if not instance_id:
956
+ raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
957
+ return await self._post(
958
+ f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/powercycle",
959
+ options=make_request_options(
960
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
961
+ ),
962
+ cast_to=GPUBaremetalClusterServer,
963
+ )
964
+
965
+ async def reboot(
966
+ self,
967
+ instance_id: str,
968
+ *,
969
+ project_id: int | None = None,
970
+ region_id: int | None = None,
971
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
972
+ # The extra values given here take precedence over values defined on the client or passed to this method.
973
+ extra_headers: Headers | None = None,
974
+ extra_query: Query | None = None,
975
+ extra_body: Body | None = None,
976
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
977
+ ) -> GPUBaremetalClusterServer:
978
+ """
979
+ Reboot one bare metal GPU cluster server
980
+
981
+ Args:
982
+ extra_headers: Send extra headers
983
+
984
+ extra_query: Add additional query parameters to the request
985
+
986
+ extra_body: Add additional JSON properties to the request
987
+
988
+ timeout: Override the client-level default timeout for this request, in seconds
989
+ """
990
+ if project_id is None:
991
+ project_id = self._client._get_cloud_project_id_path_param()
992
+ if region_id is None:
993
+ region_id = self._client._get_cloud_region_id_path_param()
994
+ if not instance_id:
995
+ raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
996
+ return await self._post(
997
+ f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/reboot",
998
+ options=make_request_options(
999
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
1000
+ ),
1001
+ cast_to=GPUBaremetalClusterServer,
1002
+ )
1003
+
1004
+
1005
+ class ServersResourceWithRawResponse:
1006
+ def __init__(self, servers: ServersResource) -> None:
1007
+ self._servers = servers
1008
+
1009
+ self.delete = to_raw_response_wrapper(
1010
+ servers.delete,
1011
+ )
1012
+ self.attach_interface = to_raw_response_wrapper(
1013
+ servers.attach_interface,
1014
+ )
1015
+ self.detach_interface = to_raw_response_wrapper(
1016
+ servers.detach_interface,
1017
+ )
1018
+ self.get_console = to_raw_response_wrapper(
1019
+ servers.get_console,
1020
+ )
1021
+ self.powercycle = to_raw_response_wrapper(
1022
+ servers.powercycle,
1023
+ )
1024
+ self.reboot = to_raw_response_wrapper(
1025
+ servers.reboot,
1026
+ )
1027
+
1028
+
1029
+ class AsyncServersResourceWithRawResponse:
1030
+ def __init__(self, servers: AsyncServersResource) -> None:
1031
+ self._servers = servers
1032
+
1033
+ self.delete = async_to_raw_response_wrapper(
1034
+ servers.delete,
1035
+ )
1036
+ self.attach_interface = async_to_raw_response_wrapper(
1037
+ servers.attach_interface,
1038
+ )
1039
+ self.detach_interface = async_to_raw_response_wrapper(
1040
+ servers.detach_interface,
1041
+ )
1042
+ self.get_console = async_to_raw_response_wrapper(
1043
+ servers.get_console,
1044
+ )
1045
+ self.powercycle = async_to_raw_response_wrapper(
1046
+ servers.powercycle,
1047
+ )
1048
+ self.reboot = async_to_raw_response_wrapper(
1049
+ servers.reboot,
1050
+ )
1051
+
1052
+
1053
+ class ServersResourceWithStreamingResponse:
1054
+ def __init__(self, servers: ServersResource) -> None:
1055
+ self._servers = servers
1056
+
1057
+ self.delete = to_streamed_response_wrapper(
1058
+ servers.delete,
1059
+ )
1060
+ self.attach_interface = to_streamed_response_wrapper(
1061
+ servers.attach_interface,
1062
+ )
1063
+ self.detach_interface = to_streamed_response_wrapper(
1064
+ servers.detach_interface,
1065
+ )
1066
+ self.get_console = to_streamed_response_wrapper(
1067
+ servers.get_console,
1068
+ )
1069
+ self.powercycle = to_streamed_response_wrapper(
1070
+ servers.powercycle,
1071
+ )
1072
+ self.reboot = to_streamed_response_wrapper(
1073
+ servers.reboot,
1074
+ )
1075
+
1076
+
1077
+ class AsyncServersResourceWithStreamingResponse:
1078
+ def __init__(self, servers: AsyncServersResource) -> None:
1079
+ self._servers = servers
1080
+
1081
+ self.delete = async_to_streamed_response_wrapper(
1082
+ servers.delete,
1083
+ )
1084
+ self.attach_interface = async_to_streamed_response_wrapper(
1085
+ servers.attach_interface,
1086
+ )
1087
+ self.detach_interface = async_to_streamed_response_wrapper(
1088
+ servers.detach_interface,
1089
+ )
1090
+ self.get_console = async_to_streamed_response_wrapper(
1091
+ servers.get_console,
1092
+ )
1093
+ self.powercycle = async_to_streamed_response_wrapper(
1094
+ servers.powercycle,
1095
+ )
1096
+ self.reboot = async_to_streamed_response_wrapper(
1097
+ servers.reboot,
1098
+ )