gcore 0.10.0__py3-none-any.whl → 0.12.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (320) hide show
  1. gcore/_base_client.py +3 -3
  2. gcore/_client.py +18 -0
  3. gcore/_compat.py +48 -48
  4. gcore/_models.py +41 -41
  5. gcore/_types.py +35 -1
  6. gcore/_utils/__init__.py +9 -2
  7. gcore/_utils/_compat.py +45 -0
  8. gcore/_utils/_datetime_parse.py +136 -0
  9. gcore/_utils/_transform.py +11 -1
  10. gcore/_utils/_typing.py +6 -1
  11. gcore/_utils/_utils.py +0 -1
  12. gcore/_version.py +1 -1
  13. gcore/resources/__init__.py +28 -0
  14. gcore/resources/cloud/__init__.py +14 -0
  15. gcore/resources/cloud/audit_logs.py +3 -3
  16. gcore/resources/cloud/baremetal/images.py +3 -4
  17. gcore/resources/cloud/baremetal/servers.py +16 -4
  18. gcore/resources/cloud/cloud.py +32 -0
  19. gcore/resources/cloud/cost_reports.py +24 -16
  20. gcore/resources/cloud/file_shares/access_rules.py +2 -2
  21. gcore/resources/cloud/file_shares/file_shares.py +30 -14
  22. gcore/resources/cloud/floating_ips.py +196 -4
  23. gcore/resources/cloud/gpu_baremetal_clusters/flavors.py +1 -1
  24. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +166 -190
  25. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +268 -12
  26. gcore/resources/cloud/inference/__init__.py +14 -14
  27. gcore/resources/cloud/inference/applications/__init__.py +47 -0
  28. gcore/resources/cloud/inference/applications/applications.py +134 -0
  29. gcore/resources/cloud/inference/applications/deployments.py +649 -0
  30. gcore/resources/cloud/inference/applications/templates.py +238 -0
  31. gcore/resources/cloud/inference/deployments/deployments.py +41 -22
  32. gcore/resources/cloud/inference/inference.py +32 -32
  33. gcore/resources/cloud/inference/registry_credentials.py +8 -9
  34. gcore/resources/cloud/instances/images.py +4 -4
  35. gcore/resources/cloud/instances/instances.py +254 -4
  36. gcore/resources/cloud/instances/interfaces.py +544 -0
  37. gcore/resources/cloud/k8s/__init__.py +47 -0
  38. gcore/resources/cloud/k8s/clusters/__init__.py +47 -0
  39. gcore/resources/cloud/k8s/clusters/clusters.py +1391 -0
  40. gcore/resources/cloud/k8s/clusters/nodes.py +291 -0
  41. gcore/resources/cloud/k8s/clusters/pools/__init__.py +33 -0
  42. gcore/resources/cloud/k8s/clusters/pools/nodes.py +303 -0
  43. gcore/resources/cloud/k8s/clusters/pools/pools.py +870 -0
  44. gcore/resources/cloud/k8s/flavors.py +209 -0
  45. gcore/resources/cloud/k8s/k8s.py +233 -0
  46. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +11 -12
  47. gcore/resources/cloud/load_balancers/l7_policies/rules.py +9 -10
  48. gcore/resources/cloud/load_balancers/listeners.py +18 -18
  49. gcore/resources/cloud/load_balancers/load_balancers.py +4 -4
  50. gcore/resources/cloud/load_balancers/pools/health_monitors.py +18 -6
  51. gcore/resources/cloud/load_balancers/pools/members.py +32 -2
  52. gcore/resources/cloud/load_balancers/pools/pools.py +32 -8
  53. gcore/resources/cloud/networks/networks.py +192 -4
  54. gcore/resources/cloud/networks/subnets.py +140 -8
  55. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +608 -0
  56. gcore/resources/cloud/reserved_fixed_ips/vip.py +5 -7
  57. gcore/resources/cloud/security_groups/security_groups.py +6 -6
  58. gcore/resources/cloud/tasks.py +46 -46
  59. gcore/resources/cloud/users/role_assignments.py +5 -4
  60. gcore/resources/cloud/volumes.py +1125 -223
  61. gcore/resources/dns/__init__.py +75 -0
  62. gcore/resources/dns/dns.py +374 -0
  63. gcore/resources/dns/locations.py +288 -0
  64. gcore/resources/dns/metrics.py +214 -0
  65. gcore/resources/dns/pickers/__init__.py +33 -0
  66. gcore/resources/dns/pickers/pickers.py +167 -0
  67. gcore/resources/dns/pickers/presets.py +135 -0
  68. gcore/resources/dns/zones/__init__.py +47 -0
  69. gcore/resources/{cloud/inference/models.py → dns/zones/dnssec.py} +80 -122
  70. gcore/resources/dns/zones/rrsets.py +1005 -0
  71. gcore/resources/dns/zones/zones.py +1493 -0
  72. gcore/resources/storage/__init__.py +75 -0
  73. gcore/resources/storage/buckets/__init__.py +61 -0
  74. gcore/resources/storage/buckets/buckets.py +470 -0
  75. gcore/resources/storage/buckets/cors.py +265 -0
  76. gcore/resources/storage/buckets/lifecycle.py +276 -0
  77. gcore/resources/storage/buckets/policy.py +345 -0
  78. gcore/resources/storage/credentials.py +221 -0
  79. gcore/resources/storage/locations.py +190 -0
  80. gcore/resources/storage/statistics.py +364 -0
  81. gcore/resources/storage/storage.py +1046 -0
  82. gcore/resources/streaming/ai_tasks.py +56 -70
  83. gcore/resources/streaming/playlists.py +18 -18
  84. gcore/resources/streaming/quality_sets.py +8 -8
  85. gcore/resources/streaming/statistics.py +4 -122
  86. gcore/resources/streaming/streams/overlays.py +6 -6
  87. gcore/resources/streaming/streams/streams.py +40 -64
  88. gcore/resources/streaming/videos/subtitles.py +32 -30
  89. gcore/resources/streaming/videos/videos.py +78 -72
  90. gcore/resources/waap/domains/advanced_rules.py +2 -2
  91. gcore/resources/waap/domains/api_paths.py +13 -13
  92. gcore/resources/waap/domains/custom_rules.py +2 -2
  93. gcore/resources/waap/domains/domains.py +4 -4
  94. gcore/resources/waap/domains/firewall_rules.py +2 -2
  95. gcore/resources/waap/domains/insight_silences.py +6 -6
  96. gcore/resources/waap/domains/insights.py +7 -7
  97. gcore/resources/waap/domains/statistics.py +47 -47
  98. gcore/types/cloud/__init__.py +2 -4
  99. gcore/types/cloud/audit_log_list_params.py +2 -1
  100. gcore/types/cloud/baremetal/image_list_params.py +3 -2
  101. gcore/types/cloud/baremetal/server_create_params.py +8 -6
  102. gcore/types/cloud/baremetal/server_list_params.py +3 -2
  103. gcore/types/cloud/baremetal/server_rebuild_params.py +2 -0
  104. gcore/types/cloud/cost_report_get_aggregated_monthly_params.py +35 -31
  105. gcore/types/cloud/cost_report_get_aggregated_params.py +26 -25
  106. gcore/types/cloud/cost_report_get_detailed_params.py +26 -25
  107. gcore/types/cloud/ddos_profile.py +13 -7
  108. gcore/types/cloud/ddos_profile_field.py +21 -8
  109. gcore/types/cloud/ddos_profile_option_list.py +7 -6
  110. gcore/types/cloud/ddos_profile_status.py +2 -2
  111. gcore/types/cloud/ddos_profile_template.py +7 -3
  112. gcore/types/cloud/ddos_profile_template_field.py +12 -3
  113. gcore/types/cloud/file_share.py +2 -2
  114. gcore/types/cloud/file_share_create_params.py +12 -6
  115. gcore/types/cloud/floating_ip_list_params.py +3 -2
  116. gcore/types/cloud/gpu_baremetal_cluster.py +101 -74
  117. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +76 -93
  118. gcore/types/cloud/gpu_baremetal_cluster_delete_params.py +17 -10
  119. gcore/types/cloud/gpu_baremetal_cluster_list_params.py +14 -3
  120. gcore/types/cloud/gpu_baremetal_cluster_rebuild_params.py +4 -2
  121. gcore/types/cloud/gpu_baremetal_clusters/__init__.py +6 -0
  122. gcore/types/cloud/gpu_baremetal_clusters/gpu_baremetal_cluster_server.py +74 -0
  123. gcore/types/cloud/{gpu_baremetal_cluster_server.py → gpu_baremetal_clusters/gpu_baremetal_cluster_server_v1.py} +10 -10
  124. gcore/types/cloud/gpu_baremetal_clusters/gpu_baremetal_cluster_server_v1_list.py +16 -0
  125. gcore/types/cloud/{gpu_baremetal_flavor.py → gpu_baremetal_clusters/gpu_baremetal_flavor.py} +1 -1
  126. gcore/types/cloud/{gpu_baremetal_flavor_list.py → gpu_baremetal_clusters/gpu_baremetal_flavor_list.py} +1 -1
  127. gcore/types/cloud/gpu_baremetal_clusters/server_list_params.py +75 -0
  128. gcore/types/cloud/inference/__init__.py +0 -5
  129. gcore/types/cloud/inference/applications/__init__.py +12 -0
  130. gcore/types/cloud/inference/applications/deployment_create_params.py +68 -0
  131. gcore/types/cloud/inference/applications/deployment_patch_params.py +62 -0
  132. gcore/types/cloud/inference/applications/inference_application_deployment.py +111 -0
  133. gcore/types/cloud/inference/applications/inference_application_deployment_list.py +16 -0
  134. gcore/types/cloud/inference/applications/inference_application_template.py +94 -0
  135. gcore/types/cloud/inference/applications/inference_application_template_list.py +16 -0
  136. gcore/types/cloud/inference/deployment_create_params.py +7 -6
  137. gcore/types/cloud/inference/deployment_update_params.py +7 -6
  138. gcore/types/cloud/instance_assign_security_group_params.py +4 -2
  139. gcore/types/cloud/instance_list_params.py +3 -2
  140. gcore/types/cloud/instance_unassign_security_group_params.py +4 -2
  141. gcore/types/cloud/instances/image_list_params.py +3 -2
  142. gcore/types/cloud/k8s/__init__.py +13 -0
  143. gcore/types/cloud/k8s/cluster_create_params.py +299 -0
  144. gcore/types/cloud/k8s/cluster_delete_params.py +16 -0
  145. gcore/types/cloud/k8s/cluster_update_params.py +203 -0
  146. gcore/types/cloud/k8s/cluster_upgrade_params.py +16 -0
  147. gcore/types/cloud/k8s/clusters/__init__.py +10 -0
  148. gcore/types/cloud/k8s/clusters/k8s_cluster_pool.py +66 -0
  149. gcore/types/cloud/k8s/clusters/k8s_cluster_pool_list.py +16 -0
  150. gcore/types/cloud/k8s/clusters/node_list_params.py +16 -0
  151. gcore/types/cloud/k8s/clusters/pool_create_params.py +53 -0
  152. gcore/types/cloud/k8s/clusters/pool_resize_params.py +18 -0
  153. gcore/types/cloud/k8s/clusters/pool_update_params.py +34 -0
  154. gcore/types/cloud/k8s/clusters/pools/__init__.py +5 -0
  155. gcore/types/cloud/k8s/clusters/pools/node_list_params.py +18 -0
  156. gcore/types/cloud/k8s/flavor_list_params.py +19 -0
  157. gcore/types/cloud/k8s/k8s_cluster.py +209 -0
  158. gcore/types/cloud/k8s/k8s_cluster_certificate.py +13 -0
  159. gcore/types/cloud/k8s/k8s_cluster_kubeconfig.py +19 -0
  160. gcore/types/cloud/k8s/k8s_cluster_list.py +16 -0
  161. gcore/types/cloud/k8s_cluster_version.py +10 -0
  162. gcore/types/cloud/{gpu_baremetal_cluster_server_list.py → k8s_cluster_version_list.py} +4 -4
  163. gcore/types/cloud/load_balancer_create_params.py +23 -4
  164. gcore/types/cloud/load_balancer_list_params.py +3 -2
  165. gcore/types/cloud/load_balancers/l7_policies/rule_create_params.py +3 -2
  166. gcore/types/cloud/load_balancers/l7_policies/rule_replace_params.py +3 -2
  167. gcore/types/cloud/load_balancers/l7_policy_create_params.py +3 -2
  168. gcore/types/cloud/load_balancers/l7_policy_replace_params.py +3 -2
  169. gcore/types/cloud/load_balancers/listener_create_params.py +4 -3
  170. gcore/types/cloud/load_balancers/listener_update_params.py +5 -3
  171. gcore/types/cloud/load_balancers/pool_create_params.py +19 -1
  172. gcore/types/cloud/load_balancers/pool_update_params.py +19 -1
  173. gcore/types/cloud/load_balancers/pools/member_add_params.py +19 -1
  174. gcore/types/cloud/member.py +19 -1
  175. gcore/types/cloud/network_list_params.py +3 -2
  176. gcore/types/cloud/networks/subnet_create_params.py +3 -2
  177. gcore/types/cloud/networks/subnet_list_params.py +3 -2
  178. gcore/types/cloud/networks/subnet_update_params.py +3 -2
  179. gcore/types/cloud/project.py +9 -9
  180. gcore/types/cloud/reserved_fixed_ips/vip_replace_connected_ports_params.py +3 -2
  181. gcore/types/cloud/reserved_fixed_ips/vip_update_connected_ports_params.py +3 -2
  182. gcore/types/cloud/security_group_create_params.py +4 -2
  183. gcore/types/cloud/security_group_list_params.py +3 -2
  184. gcore/types/cloud/task_id_list.py +8 -1
  185. gcore/types/cloud/task_list_params.py +23 -23
  186. gcore/types/cloud/usage_report_get_params.py +26 -25
  187. gcore/types/cloud/users/role_assignment.py +2 -1
  188. gcore/types/cloud/users/role_assignment_create_params.py +4 -2
  189. gcore/types/cloud/users/role_assignment_update_params.py +4 -2
  190. gcore/types/cloud/volume_list_params.py +3 -2
  191. gcore/types/dns/__init__.py +31 -0
  192. gcore/types/dns/dns_get_account_overview_response.py +21 -0
  193. gcore/types/dns/dns_label_name.py +13 -0
  194. gcore/types/dns/dns_location_translations.py +11 -0
  195. gcore/types/dns/dns_lookup_params.py +15 -0
  196. gcore/types/dns/dns_lookup_response.py +21 -0
  197. gcore/types/dns/dns_name_server.py +17 -0
  198. gcore/types/dns/location_list_continents_response.py +10 -0
  199. gcore/types/dns/location_list_countries_response.py +10 -0
  200. gcore/types/dns/location_list_regions_response.py +10 -0
  201. gcore/types/dns/location_list_response.py +16 -0
  202. gcore/types/dns/metric_list_params.py +24 -0
  203. gcore/types/dns/metric_list_response.py +7 -0
  204. gcore/types/dns/picker_list_response.py +10 -0
  205. gcore/types/dns/pickers/__init__.py +5 -0
  206. gcore/types/dns/pickers/preset_list_response.py +10 -0
  207. gcore/types/dns/zone_check_delegation_status_response.py +20 -0
  208. gcore/types/dns/zone_create_params.py +59 -0
  209. gcore/types/dns/zone_create_response.py +13 -0
  210. gcore/types/dns/zone_export_response.py +11 -0
  211. gcore/types/dns/zone_get_response.py +106 -0
  212. gcore/types/dns/zone_get_statistics_params.py +43 -0
  213. gcore/types/dns/zone_get_statistics_response.py +19 -0
  214. gcore/types/dns/zone_import_params.py +32 -0
  215. gcore/types/dns/zone_import_response.py +26 -0
  216. gcore/types/dns/zone_list_params.py +57 -0
  217. gcore/types/dns/zone_list_response.py +105 -0
  218. gcore/types/dns/zone_replace_params.py +61 -0
  219. gcore/types/dns/zones/__init__.py +15 -0
  220. gcore/types/dns/zones/dns_failover_log.py +19 -0
  221. gcore/types/dns/zones/dns_output_rrset.py +123 -0
  222. gcore/types/dns/zones/dnssec_get_response.py +38 -0
  223. gcore/types/dns/zones/dnssec_update_params.py +11 -0
  224. gcore/types/dns/zones/dnssec_update_response.py +38 -0
  225. gcore/types/dns/zones/rrset_create_params.py +82 -0
  226. gcore/types/dns/zones/rrset_get_failover_logs_params.py +21 -0
  227. gcore/types/dns/zones/rrset_get_failover_logs_response.py +15 -0
  228. gcore/types/dns/zones/rrset_list_params.py +21 -0
  229. gcore/types/dns/zones/rrset_list_response.py +14 -0
  230. gcore/types/dns/zones/rrset_replace_params.py +82 -0
  231. gcore/types/security/client_profile.py +1 -1
  232. gcore/types/security/profile_create_params.py +2 -2
  233. gcore/types/security/profile_recreate_params.py +2 -2
  234. gcore/types/security/profile_replace_params.py +2 -2
  235. gcore/types/storage/__init__.py +21 -0
  236. gcore/types/storage/bucket.py +15 -0
  237. gcore/types/storage/bucket_list_params.py +15 -0
  238. gcore/types/storage/buckets/__init__.py +9 -0
  239. gcore/types/storage/buckets/bucket_cors.py +18 -0
  240. gcore/types/storage/buckets/bucket_policy.py +7 -0
  241. gcore/types/storage/buckets/cor_create_params.py +17 -0
  242. gcore/types/storage/buckets/lifecycle_create_params.py +18 -0
  243. gcore/types/storage/buckets/policy_get_response.py +7 -0
  244. gcore/types/storage/credential_recreate_params.py +36 -0
  245. gcore/types/storage/location.py +24 -0
  246. gcore/types/storage/location_list_params.py +13 -0
  247. gcore/types/storage/statistic_get_usage_aggregated_params.py +24 -0
  248. gcore/types/storage/statistic_get_usage_series_params.py +38 -0
  249. gcore/types/storage/statistic_get_usage_series_response.py +12 -0
  250. gcore/types/storage/storage.py +101 -0
  251. gcore/types/storage/storage_create_params.py +44 -0
  252. gcore/types/storage/storage_list_params.py +39 -0
  253. gcore/types/storage/storage_restore_params.py +11 -0
  254. gcore/types/storage/storage_update_params.py +18 -0
  255. gcore/types/storage/usage_series.py +201 -0
  256. gcore/types/storage/usage_total.py +54 -0
  257. gcore/types/streaming/__init__.py +0 -4
  258. gcore/types/streaming/ai_contentmoderation_hardnudity.py +1 -1
  259. gcore/types/streaming/ai_contentmoderation_nsfw.py +1 -1
  260. gcore/types/streaming/ai_contentmoderation_softnudity.py +1 -1
  261. gcore/types/streaming/ai_contentmoderation_sport.py +1 -1
  262. gcore/types/streaming/ai_task.py +1 -5
  263. gcore/types/streaming/ai_task_create_params.py +2 -2
  264. gcore/types/streaming/ai_task_get_response.py +0 -46
  265. gcore/types/streaming/clip.py +2 -1
  266. gcore/types/streaming/create_video_param.py +13 -12
  267. gcore/types/streaming/max_stream_series.py +5 -5
  268. gcore/types/streaming/playlist.py +1 -1
  269. gcore/types/streaming/playlist_create_params.py +1 -1
  270. gcore/types/streaming/playlist_update_params.py +1 -1
  271. gcore/types/streaming/playlist_video.py +13 -12
  272. gcore/types/streaming/storage_series.py +5 -5
  273. gcore/types/streaming/stream.py +86 -49
  274. gcore/types/streaming/stream_create_clip_params.py +2 -1
  275. gcore/types/streaming/stream_create_params.py +9 -23
  276. gcore/types/streaming/stream_series.py +5 -5
  277. gcore/types/streaming/stream_update_params.py +9 -23
  278. gcore/types/streaming/video.py +53 -42
  279. gcore/types/streaming/video_update_params.py +13 -12
  280. gcore/types/streaming/vod_statistics_series.py +5 -5
  281. gcore/types/streaming/vod_total_stream_duration_series.py +3 -3
  282. gcore/types/waap/domain_list_params.py +1 -1
  283. gcore/types/waap/domain_update_params.py +1 -1
  284. gcore/types/waap/domains/advanced_rule_create_params.py +7 -4
  285. gcore/types/waap/domains/advanced_rule_update_params.py +6 -3
  286. gcore/types/waap/domains/api_path_create_params.py +4 -3
  287. gcore/types/waap/domains/api_path_list_params.py +3 -1
  288. gcore/types/waap/domains/api_path_update_params.py +5 -4
  289. gcore/types/waap/domains/custom_rule_create_params.py +13 -14
  290. gcore/types/waap/domains/custom_rule_update_params.py +12 -13
  291. gcore/types/waap/domains/firewall_rule_create_params.py +3 -2
  292. gcore/types/waap/domains/firewall_rule_update_params.py +2 -1
  293. gcore/types/waap/domains/insight_list_params.py +4 -2
  294. gcore/types/waap/domains/insight_replace_params.py +1 -1
  295. gcore/types/waap/domains/insight_silence_list_params.py +5 -3
  296. gcore/types/waap/domains/setting_update_params.py +3 -2
  297. gcore/types/waap/domains/statistic_get_ddos_info_params.py +6 -9
  298. gcore/types/waap/domains/statistic_get_events_aggregated_params.py +9 -10
  299. gcore/types/waap/domains/statistic_get_requests_series_params.py +8 -9
  300. gcore/types/waap/domains/statistic_get_traffic_series_params.py +6 -9
  301. gcore/types/waap/domains/waap_advanced_rule.py +3 -2
  302. gcore/types/waap/domains/waap_api_path.py +4 -4
  303. gcore/types/waap/domains/waap_api_scan_result.py +2 -2
  304. gcore/types/waap/domains/waap_custom_rule.py +4 -7
  305. gcore/types/waap/domains/waap_firewall_rule.py +3 -2
  306. gcore/types/waap/domains/waap_insight.py +1 -1
  307. gcore/types/waap/domains/waap_request_details.py +5 -4
  308. gcore/types/waap/waap_ip_ddos_info_model.py +3 -3
  309. gcore/types/waap/waap_rule_set.py +1 -1
  310. {gcore-0.10.0.dist-info → gcore-0.12.0.dist-info}/METADATA +7 -2
  311. {gcore-0.10.0.dist-info → gcore-0.12.0.dist-info}/RECORD +313 -193
  312. gcore/types/cloud/inference/inference_model.py +0 -65
  313. gcore/types/cloud/inference/inference_registry_credentials_create.py +0 -22
  314. gcore/types/cloud/inference/model_list_params.py +0 -21
  315. gcore/types/streaming/ai_contentmoderation_casm.py +0 -39
  316. gcore/types/streaming/ai_contentmoderation_weapon.py +0 -39
  317. gcore/types/streaming/meet_series.py +0 -23
  318. gcore/types/streaming/statistic_get_meet_series_params.py +0 -20
  319. {gcore-0.10.0.dist-info → gcore-0.12.0.dist-info}/WHEEL +0 -0
  320. {gcore-0.10.0.dist-info → gcore-0.12.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,870 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Dict, Optional
6
+ from typing_extensions import Literal
7
+
8
+ import httpx
9
+
10
+ from .nodes import (
11
+ NodesResource,
12
+ AsyncNodesResource,
13
+ NodesResourceWithRawResponse,
14
+ AsyncNodesResourceWithRawResponse,
15
+ NodesResourceWithStreamingResponse,
16
+ AsyncNodesResourceWithStreamingResponse,
17
+ )
18
+ from ......_types import NOT_GIVEN, Body, Query, Headers, NotGiven
19
+ from ......_utils import maybe_transform, async_maybe_transform
20
+ from ......_compat import cached_property
21
+ from ......_resource import SyncAPIResource, AsyncAPIResource
22
+ from ......_response import (
23
+ to_raw_response_wrapper,
24
+ to_streamed_response_wrapper,
25
+ async_to_raw_response_wrapper,
26
+ async_to_streamed_response_wrapper,
27
+ )
28
+ from ......_base_client import make_request_options
29
+ from ......types.cloud.k8s.clusters import pool_create_params, pool_resize_params, pool_update_params
30
+ from ......types.cloud.task_id_list import TaskIDList
31
+ from ......types.cloud.k8s.clusters.k8s_cluster_pool import K8sClusterPool
32
+ from ......types.cloud.k8s.clusters.k8s_cluster_pool_list import K8sClusterPoolList
33
+
34
+ __all__ = ["PoolsResource", "AsyncPoolsResource"]
35
+
36
+
37
+ class PoolsResource(SyncAPIResource):
38
+ @cached_property
39
+ def nodes(self) -> NodesResource:
40
+ return NodesResource(self._client)
41
+
42
+ @cached_property
43
+ def with_raw_response(self) -> PoolsResourceWithRawResponse:
44
+ """
45
+ This property can be used as a prefix for any HTTP method call to return
46
+ the raw response object instead of the parsed content.
47
+
48
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
49
+ """
50
+ return PoolsResourceWithRawResponse(self)
51
+
52
+ @cached_property
53
+ def with_streaming_response(self) -> PoolsResourceWithStreamingResponse:
54
+ """
55
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
56
+
57
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
58
+ """
59
+ return PoolsResourceWithStreamingResponse(self)
60
+
61
+ def create(
62
+ self,
63
+ cluster_name: str,
64
+ *,
65
+ project_id: int | None = None,
66
+ region_id: int | None = None,
67
+ flavor_id: str,
68
+ min_node_count: int,
69
+ name: str,
70
+ auto_healing_enabled: Optional[bool] | NotGiven = NOT_GIVEN,
71
+ boot_volume_size: Optional[int] | NotGiven = NOT_GIVEN,
72
+ boot_volume_type: Optional[Literal["cold", "ssd_hiiops", "ssd_local", "ssd_lowlatency", "standard", "ultra"]]
73
+ | NotGiven = NOT_GIVEN,
74
+ crio_config: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
75
+ is_public_ipv4: Optional[bool] | NotGiven = NOT_GIVEN,
76
+ kubelet_config: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
77
+ labels: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
78
+ max_node_count: Optional[int] | NotGiven = NOT_GIVEN,
79
+ servergroup_policy: Optional[Literal["affinity", "anti-affinity", "soft-anti-affinity"]] | NotGiven = NOT_GIVEN,
80
+ taints: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
81
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
82
+ # The extra values given here take precedence over values defined on the client or passed to this method.
83
+ extra_headers: Headers | None = None,
84
+ extra_query: Query | None = None,
85
+ extra_body: Body | None = None,
86
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
87
+ ) -> TaskIDList:
88
+ """
89
+ Create k8s cluster pool
90
+
91
+ Args:
92
+ flavor_id: Flavor ID
93
+
94
+ min_node_count: Minimum node count
95
+
96
+ name: Pool's name
97
+
98
+ auto_healing_enabled: Enable auto healing
99
+
100
+ boot_volume_size: Boot volume size
101
+
102
+ boot_volume_type: Boot volume type
103
+
104
+ crio_config: Cri-o configuration for pool nodes
105
+
106
+ is_public_ipv4: Enable public v4 address
107
+
108
+ kubelet_config: Kubelet configuration for pool nodes
109
+
110
+ labels: Labels applied to the cluster pool
111
+
112
+ max_node_count: Maximum node count
113
+
114
+ servergroup_policy: Server group policy: anti-affinity, soft-anti-affinity or affinity
115
+
116
+ taints: Taints applied to the cluster pool
117
+
118
+ extra_headers: Send extra headers
119
+
120
+ extra_query: Add additional query parameters to the request
121
+
122
+ extra_body: Add additional JSON properties to the request
123
+
124
+ timeout: Override the client-level default timeout for this request, in seconds
125
+ """
126
+ if project_id is None:
127
+ project_id = self._client._get_cloud_project_id_path_param()
128
+ if region_id is None:
129
+ region_id = self._client._get_cloud_region_id_path_param()
130
+ if not cluster_name:
131
+ raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}")
132
+ return self._post(
133
+ f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools",
134
+ body=maybe_transform(
135
+ {
136
+ "flavor_id": flavor_id,
137
+ "min_node_count": min_node_count,
138
+ "name": name,
139
+ "auto_healing_enabled": auto_healing_enabled,
140
+ "boot_volume_size": boot_volume_size,
141
+ "boot_volume_type": boot_volume_type,
142
+ "crio_config": crio_config,
143
+ "is_public_ipv4": is_public_ipv4,
144
+ "kubelet_config": kubelet_config,
145
+ "labels": labels,
146
+ "max_node_count": max_node_count,
147
+ "servergroup_policy": servergroup_policy,
148
+ "taints": taints,
149
+ },
150
+ pool_create_params.PoolCreateParams,
151
+ ),
152
+ options=make_request_options(
153
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
154
+ ),
155
+ cast_to=TaskIDList,
156
+ )
157
+
158
+ def update(
159
+ self,
160
+ pool_name: str,
161
+ *,
162
+ project_id: int | None = None,
163
+ region_id: int | None = None,
164
+ cluster_name: str,
165
+ auto_healing_enabled: Optional[bool] | NotGiven = NOT_GIVEN,
166
+ labels: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
167
+ max_node_count: Optional[int] | NotGiven = NOT_GIVEN,
168
+ min_node_count: Optional[int] | NotGiven = NOT_GIVEN,
169
+ node_count: Optional[int] | NotGiven = NOT_GIVEN,
170
+ taints: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
171
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
172
+ # The extra values given here take precedence over values defined on the client or passed to this method.
173
+ extra_headers: Headers | None = None,
174
+ extra_query: Query | None = None,
175
+ extra_body: Body | None = None,
176
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
177
+ ) -> K8sClusterPool:
178
+ """
179
+ Update k8s cluster pool
180
+
181
+ Args:
182
+ auto_healing_enabled: Enable/disable auto healing
183
+
184
+ labels: Labels applied to the cluster pool
185
+
186
+ max_node_count: Maximum node count
187
+
188
+ min_node_count: Minimum node count
189
+
190
+ node_count: Current node count
191
+
192
+ taints: Taints applied to the cluster pool
193
+
194
+ extra_headers: Send extra headers
195
+
196
+ extra_query: Add additional query parameters to the request
197
+
198
+ extra_body: Add additional JSON properties to the request
199
+
200
+ timeout: Override the client-level default timeout for this request, in seconds
201
+ """
202
+ if project_id is None:
203
+ project_id = self._client._get_cloud_project_id_path_param()
204
+ if region_id is None:
205
+ region_id = self._client._get_cloud_region_id_path_param()
206
+ if not cluster_name:
207
+ raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}")
208
+ if not pool_name:
209
+ raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}")
210
+ return self._patch(
211
+ f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}",
212
+ body=maybe_transform(
213
+ {
214
+ "auto_healing_enabled": auto_healing_enabled,
215
+ "labels": labels,
216
+ "max_node_count": max_node_count,
217
+ "min_node_count": min_node_count,
218
+ "node_count": node_count,
219
+ "taints": taints,
220
+ },
221
+ pool_update_params.PoolUpdateParams,
222
+ ),
223
+ options=make_request_options(
224
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
225
+ ),
226
+ cast_to=K8sClusterPool,
227
+ )
228
+
229
+ def list(
230
+ self,
231
+ cluster_name: str,
232
+ *,
233
+ project_id: int | None = None,
234
+ region_id: int | None = None,
235
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
236
+ # The extra values given here take precedence over values defined on the client or passed to this method.
237
+ extra_headers: Headers | None = None,
238
+ extra_query: Query | None = None,
239
+ extra_body: Body | None = None,
240
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
241
+ ) -> K8sClusterPoolList:
242
+ """
243
+ List k8s cluster pools
244
+
245
+ Args:
246
+ extra_headers: Send extra headers
247
+
248
+ extra_query: Add additional query parameters to the request
249
+
250
+ extra_body: Add additional JSON properties to the request
251
+
252
+ timeout: Override the client-level default timeout for this request, in seconds
253
+ """
254
+ if project_id is None:
255
+ project_id = self._client._get_cloud_project_id_path_param()
256
+ if region_id is None:
257
+ region_id = self._client._get_cloud_region_id_path_param()
258
+ if not cluster_name:
259
+ raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}")
260
+ return self._get(
261
+ f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools",
262
+ options=make_request_options(
263
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
264
+ ),
265
+ cast_to=K8sClusterPoolList,
266
+ )
267
+
268
+ def delete(
269
+ self,
270
+ pool_name: str,
271
+ *,
272
+ project_id: int | None = None,
273
+ region_id: int | None = None,
274
+ cluster_name: str,
275
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
276
+ # The extra values given here take precedence over values defined on the client or passed to this method.
277
+ extra_headers: Headers | None = None,
278
+ extra_query: Query | None = None,
279
+ extra_body: Body | None = None,
280
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
281
+ ) -> TaskIDList:
282
+ """
283
+ Delete k8s cluster pool
284
+
285
+ Args:
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
+ if project_id is None:
295
+ project_id = self._client._get_cloud_project_id_path_param()
296
+ if region_id is None:
297
+ region_id = self._client._get_cloud_region_id_path_param()
298
+ if not cluster_name:
299
+ raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}")
300
+ if not pool_name:
301
+ raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}")
302
+ return self._delete(
303
+ f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}",
304
+ options=make_request_options(
305
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
306
+ ),
307
+ cast_to=TaskIDList,
308
+ )
309
+
310
+ def get(
311
+ self,
312
+ pool_name: str,
313
+ *,
314
+ project_id: int | None = None,
315
+ region_id: int | None = None,
316
+ cluster_name: str,
317
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
318
+ # The extra values given here take precedence over values defined on the client or passed to this method.
319
+ extra_headers: Headers | None = None,
320
+ extra_query: Query | None = None,
321
+ extra_body: Body | None = None,
322
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
323
+ ) -> K8sClusterPool:
324
+ """
325
+ Get k8s cluster pool
326
+
327
+ Args:
328
+ extra_headers: Send extra headers
329
+
330
+ extra_query: Add additional query parameters to the request
331
+
332
+ extra_body: Add additional JSON properties to the request
333
+
334
+ timeout: Override the client-level default timeout for this request, in seconds
335
+ """
336
+ if project_id is None:
337
+ project_id = self._client._get_cloud_project_id_path_param()
338
+ if region_id is None:
339
+ region_id = self._client._get_cloud_region_id_path_param()
340
+ if not cluster_name:
341
+ raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}")
342
+ if not pool_name:
343
+ raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}")
344
+ return self._get(
345
+ f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}",
346
+ options=make_request_options(
347
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
348
+ ),
349
+ cast_to=K8sClusterPool,
350
+ )
351
+
352
+ def resize(
353
+ self,
354
+ pool_name: str,
355
+ *,
356
+ project_id: int | None = None,
357
+ region_id: int | None = None,
358
+ cluster_name: str,
359
+ node_count: int,
360
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
361
+ # The extra values given here take precedence over values defined on the client or passed to this method.
362
+ extra_headers: Headers | None = None,
363
+ extra_query: Query | None = None,
364
+ extra_body: Body | None = None,
365
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
366
+ ) -> TaskIDList:
367
+ """
368
+ Resize k8s cluster pool
369
+
370
+ Args:
371
+ node_count: Target node count
372
+
373
+ extra_headers: Send extra headers
374
+
375
+ extra_query: Add additional query parameters to the request
376
+
377
+ extra_body: Add additional JSON properties to the request
378
+
379
+ timeout: Override the client-level default timeout for this request, in seconds
380
+ """
381
+ if project_id is None:
382
+ project_id = self._client._get_cloud_project_id_path_param()
383
+ if region_id is None:
384
+ region_id = self._client._get_cloud_region_id_path_param()
385
+ if not cluster_name:
386
+ raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}")
387
+ if not pool_name:
388
+ raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}")
389
+ return self._post(
390
+ f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/resize",
391
+ body=maybe_transform({"node_count": node_count}, pool_resize_params.PoolResizeParams),
392
+ options=make_request_options(
393
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
394
+ ),
395
+ cast_to=TaskIDList,
396
+ )
397
+
398
+
399
+ class AsyncPoolsResource(AsyncAPIResource):
400
+ @cached_property
401
+ def nodes(self) -> AsyncNodesResource:
402
+ return AsyncNodesResource(self._client)
403
+
404
+ @cached_property
405
+ def with_raw_response(self) -> AsyncPoolsResourceWithRawResponse:
406
+ """
407
+ This property can be used as a prefix for any HTTP method call to return
408
+ the raw response object instead of the parsed content.
409
+
410
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
411
+ """
412
+ return AsyncPoolsResourceWithRawResponse(self)
413
+
414
+ @cached_property
415
+ def with_streaming_response(self) -> AsyncPoolsResourceWithStreamingResponse:
416
+ """
417
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
418
+
419
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
420
+ """
421
+ return AsyncPoolsResourceWithStreamingResponse(self)
422
+
423
+ async def create(
424
+ self,
425
+ cluster_name: str,
426
+ *,
427
+ project_id: int | None = None,
428
+ region_id: int | None = None,
429
+ flavor_id: str,
430
+ min_node_count: int,
431
+ name: str,
432
+ auto_healing_enabled: Optional[bool] | NotGiven = NOT_GIVEN,
433
+ boot_volume_size: Optional[int] | NotGiven = NOT_GIVEN,
434
+ boot_volume_type: Optional[Literal["cold", "ssd_hiiops", "ssd_local", "ssd_lowlatency", "standard", "ultra"]]
435
+ | NotGiven = NOT_GIVEN,
436
+ crio_config: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
437
+ is_public_ipv4: Optional[bool] | NotGiven = NOT_GIVEN,
438
+ kubelet_config: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
439
+ labels: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
440
+ max_node_count: Optional[int] | NotGiven = NOT_GIVEN,
441
+ servergroup_policy: Optional[Literal["affinity", "anti-affinity", "soft-anti-affinity"]] | NotGiven = NOT_GIVEN,
442
+ taints: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
443
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
444
+ # The extra values given here take precedence over values defined on the client or passed to this method.
445
+ extra_headers: Headers | None = None,
446
+ extra_query: Query | None = None,
447
+ extra_body: Body | None = None,
448
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
449
+ ) -> TaskIDList:
450
+ """
451
+ Create k8s cluster pool
452
+
453
+ Args:
454
+ flavor_id: Flavor ID
455
+
456
+ min_node_count: Minimum node count
457
+
458
+ name: Pool's name
459
+
460
+ auto_healing_enabled: Enable auto healing
461
+
462
+ boot_volume_size: Boot volume size
463
+
464
+ boot_volume_type: Boot volume type
465
+
466
+ crio_config: Cri-o configuration for pool nodes
467
+
468
+ is_public_ipv4: Enable public v4 address
469
+
470
+ kubelet_config: Kubelet configuration for pool nodes
471
+
472
+ labels: Labels applied to the cluster pool
473
+
474
+ max_node_count: Maximum node count
475
+
476
+ servergroup_policy: Server group policy: anti-affinity, soft-anti-affinity or affinity
477
+
478
+ taints: Taints applied to the cluster pool
479
+
480
+ extra_headers: Send extra headers
481
+
482
+ extra_query: Add additional query parameters to the request
483
+
484
+ extra_body: Add additional JSON properties to the request
485
+
486
+ timeout: Override the client-level default timeout for this request, in seconds
487
+ """
488
+ if project_id is None:
489
+ project_id = self._client._get_cloud_project_id_path_param()
490
+ if region_id is None:
491
+ region_id = self._client._get_cloud_region_id_path_param()
492
+ if not cluster_name:
493
+ raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}")
494
+ return await self._post(
495
+ f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools",
496
+ body=await async_maybe_transform(
497
+ {
498
+ "flavor_id": flavor_id,
499
+ "min_node_count": min_node_count,
500
+ "name": name,
501
+ "auto_healing_enabled": auto_healing_enabled,
502
+ "boot_volume_size": boot_volume_size,
503
+ "boot_volume_type": boot_volume_type,
504
+ "crio_config": crio_config,
505
+ "is_public_ipv4": is_public_ipv4,
506
+ "kubelet_config": kubelet_config,
507
+ "labels": labels,
508
+ "max_node_count": max_node_count,
509
+ "servergroup_policy": servergroup_policy,
510
+ "taints": taints,
511
+ },
512
+ pool_create_params.PoolCreateParams,
513
+ ),
514
+ options=make_request_options(
515
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
516
+ ),
517
+ cast_to=TaskIDList,
518
+ )
519
+
520
+ async def update(
521
+ self,
522
+ pool_name: str,
523
+ *,
524
+ project_id: int | None = None,
525
+ region_id: int | None = None,
526
+ cluster_name: str,
527
+ auto_healing_enabled: Optional[bool] | NotGiven = NOT_GIVEN,
528
+ labels: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
529
+ max_node_count: Optional[int] | NotGiven = NOT_GIVEN,
530
+ min_node_count: Optional[int] | NotGiven = NOT_GIVEN,
531
+ node_count: Optional[int] | NotGiven = NOT_GIVEN,
532
+ taints: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
533
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
534
+ # The extra values given here take precedence over values defined on the client or passed to this method.
535
+ extra_headers: Headers | None = None,
536
+ extra_query: Query | None = None,
537
+ extra_body: Body | None = None,
538
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
539
+ ) -> K8sClusterPool:
540
+ """
541
+ Update k8s cluster pool
542
+
543
+ Args:
544
+ auto_healing_enabled: Enable/disable auto healing
545
+
546
+ labels: Labels applied to the cluster pool
547
+
548
+ max_node_count: Maximum node count
549
+
550
+ min_node_count: Minimum node count
551
+
552
+ node_count: Current node count
553
+
554
+ taints: Taints applied to the cluster pool
555
+
556
+ extra_headers: Send extra headers
557
+
558
+ extra_query: Add additional query parameters to the request
559
+
560
+ extra_body: Add additional JSON properties to the request
561
+
562
+ timeout: Override the client-level default timeout for this request, in seconds
563
+ """
564
+ if project_id is None:
565
+ project_id = self._client._get_cloud_project_id_path_param()
566
+ if region_id is None:
567
+ region_id = self._client._get_cloud_region_id_path_param()
568
+ if not cluster_name:
569
+ raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}")
570
+ if not pool_name:
571
+ raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}")
572
+ return await self._patch(
573
+ f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}",
574
+ body=await async_maybe_transform(
575
+ {
576
+ "auto_healing_enabled": auto_healing_enabled,
577
+ "labels": labels,
578
+ "max_node_count": max_node_count,
579
+ "min_node_count": min_node_count,
580
+ "node_count": node_count,
581
+ "taints": taints,
582
+ },
583
+ pool_update_params.PoolUpdateParams,
584
+ ),
585
+ options=make_request_options(
586
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
587
+ ),
588
+ cast_to=K8sClusterPool,
589
+ )
590
+
591
+ async def list(
592
+ self,
593
+ cluster_name: str,
594
+ *,
595
+ project_id: int | None = None,
596
+ region_id: int | None = None,
597
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
598
+ # The extra values given here take precedence over values defined on the client or passed to this method.
599
+ extra_headers: Headers | None = None,
600
+ extra_query: Query | None = None,
601
+ extra_body: Body | None = None,
602
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
603
+ ) -> K8sClusterPoolList:
604
+ """
605
+ List k8s cluster pools
606
+
607
+ Args:
608
+ extra_headers: Send extra headers
609
+
610
+ extra_query: Add additional query parameters to the request
611
+
612
+ extra_body: Add additional JSON properties to the request
613
+
614
+ timeout: Override the client-level default timeout for this request, in seconds
615
+ """
616
+ if project_id is None:
617
+ project_id = self._client._get_cloud_project_id_path_param()
618
+ if region_id is None:
619
+ region_id = self._client._get_cloud_region_id_path_param()
620
+ if not cluster_name:
621
+ raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}")
622
+ return await self._get(
623
+ f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools",
624
+ options=make_request_options(
625
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
626
+ ),
627
+ cast_to=K8sClusterPoolList,
628
+ )
629
+
630
+ async def delete(
631
+ self,
632
+ pool_name: str,
633
+ *,
634
+ project_id: int | None = None,
635
+ region_id: int | None = None,
636
+ cluster_name: str,
637
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
638
+ # The extra values given here take precedence over values defined on the client or passed to this method.
639
+ extra_headers: Headers | None = None,
640
+ extra_query: Query | None = None,
641
+ extra_body: Body | None = None,
642
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
643
+ ) -> TaskIDList:
644
+ """
645
+ Delete k8s cluster pool
646
+
647
+ Args:
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
+ if not cluster_name:
661
+ raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}")
662
+ if not pool_name:
663
+ raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}")
664
+ return await self._delete(
665
+ f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}",
666
+ options=make_request_options(
667
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
668
+ ),
669
+ cast_to=TaskIDList,
670
+ )
671
+
672
+ async def get(
673
+ self,
674
+ pool_name: str,
675
+ *,
676
+ project_id: int | None = None,
677
+ region_id: int | None = None,
678
+ cluster_name: str,
679
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
680
+ # The extra values given here take precedence over values defined on the client or passed to this method.
681
+ extra_headers: Headers | None = None,
682
+ extra_query: Query | None = None,
683
+ extra_body: Body | None = None,
684
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
685
+ ) -> K8sClusterPool:
686
+ """
687
+ Get k8s cluster pool
688
+
689
+ Args:
690
+ extra_headers: Send extra headers
691
+
692
+ extra_query: Add additional query parameters to the request
693
+
694
+ extra_body: Add additional JSON properties to the request
695
+
696
+ timeout: Override the client-level default timeout for this request, in seconds
697
+ """
698
+ if project_id is None:
699
+ project_id = self._client._get_cloud_project_id_path_param()
700
+ if region_id is None:
701
+ region_id = self._client._get_cloud_region_id_path_param()
702
+ if not cluster_name:
703
+ raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}")
704
+ if not pool_name:
705
+ raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}")
706
+ return await self._get(
707
+ f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}",
708
+ options=make_request_options(
709
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
710
+ ),
711
+ cast_to=K8sClusterPool,
712
+ )
713
+
714
+ async def resize(
715
+ self,
716
+ pool_name: str,
717
+ *,
718
+ project_id: int | None = None,
719
+ region_id: int | None = None,
720
+ cluster_name: str,
721
+ node_count: int,
722
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
723
+ # The extra values given here take precedence over values defined on the client or passed to this method.
724
+ extra_headers: Headers | None = None,
725
+ extra_query: Query | None = None,
726
+ extra_body: Body | None = None,
727
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
728
+ ) -> TaskIDList:
729
+ """
730
+ Resize k8s cluster pool
731
+
732
+ Args:
733
+ node_count: Target node count
734
+
735
+ extra_headers: Send extra headers
736
+
737
+ extra_query: Add additional query parameters to the request
738
+
739
+ extra_body: Add additional JSON properties to the request
740
+
741
+ timeout: Override the client-level default timeout for this request, in seconds
742
+ """
743
+ if project_id is None:
744
+ project_id = self._client._get_cloud_project_id_path_param()
745
+ if region_id is None:
746
+ region_id = self._client._get_cloud_region_id_path_param()
747
+ if not cluster_name:
748
+ raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}")
749
+ if not pool_name:
750
+ raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}")
751
+ return await self._post(
752
+ f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/resize",
753
+ body=await async_maybe_transform({"node_count": node_count}, pool_resize_params.PoolResizeParams),
754
+ options=make_request_options(
755
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
756
+ ),
757
+ cast_to=TaskIDList,
758
+ )
759
+
760
+
761
+ class PoolsResourceWithRawResponse:
762
+ def __init__(self, pools: PoolsResource) -> None:
763
+ self._pools = pools
764
+
765
+ self.create = to_raw_response_wrapper(
766
+ pools.create,
767
+ )
768
+ self.update = to_raw_response_wrapper(
769
+ pools.update,
770
+ )
771
+ self.list = to_raw_response_wrapper(
772
+ pools.list,
773
+ )
774
+ self.delete = to_raw_response_wrapper(
775
+ pools.delete,
776
+ )
777
+ self.get = to_raw_response_wrapper(
778
+ pools.get,
779
+ )
780
+ self.resize = to_raw_response_wrapper(
781
+ pools.resize,
782
+ )
783
+
784
+ @cached_property
785
+ def nodes(self) -> NodesResourceWithRawResponse:
786
+ return NodesResourceWithRawResponse(self._pools.nodes)
787
+
788
+
789
+ class AsyncPoolsResourceWithRawResponse:
790
+ def __init__(self, pools: AsyncPoolsResource) -> None:
791
+ self._pools = pools
792
+
793
+ self.create = async_to_raw_response_wrapper(
794
+ pools.create,
795
+ )
796
+ self.update = async_to_raw_response_wrapper(
797
+ pools.update,
798
+ )
799
+ self.list = async_to_raw_response_wrapper(
800
+ pools.list,
801
+ )
802
+ self.delete = async_to_raw_response_wrapper(
803
+ pools.delete,
804
+ )
805
+ self.get = async_to_raw_response_wrapper(
806
+ pools.get,
807
+ )
808
+ self.resize = async_to_raw_response_wrapper(
809
+ pools.resize,
810
+ )
811
+
812
+ @cached_property
813
+ def nodes(self) -> AsyncNodesResourceWithRawResponse:
814
+ return AsyncNodesResourceWithRawResponse(self._pools.nodes)
815
+
816
+
817
+ class PoolsResourceWithStreamingResponse:
818
+ def __init__(self, pools: PoolsResource) -> None:
819
+ self._pools = pools
820
+
821
+ self.create = to_streamed_response_wrapper(
822
+ pools.create,
823
+ )
824
+ self.update = to_streamed_response_wrapper(
825
+ pools.update,
826
+ )
827
+ self.list = to_streamed_response_wrapper(
828
+ pools.list,
829
+ )
830
+ self.delete = to_streamed_response_wrapper(
831
+ pools.delete,
832
+ )
833
+ self.get = to_streamed_response_wrapper(
834
+ pools.get,
835
+ )
836
+ self.resize = to_streamed_response_wrapper(
837
+ pools.resize,
838
+ )
839
+
840
+ @cached_property
841
+ def nodes(self) -> NodesResourceWithStreamingResponse:
842
+ return NodesResourceWithStreamingResponse(self._pools.nodes)
843
+
844
+
845
+ class AsyncPoolsResourceWithStreamingResponse:
846
+ def __init__(self, pools: AsyncPoolsResource) -> None:
847
+ self._pools = pools
848
+
849
+ self.create = async_to_streamed_response_wrapper(
850
+ pools.create,
851
+ )
852
+ self.update = async_to_streamed_response_wrapper(
853
+ pools.update,
854
+ )
855
+ self.list = async_to_streamed_response_wrapper(
856
+ pools.list,
857
+ )
858
+ self.delete = async_to_streamed_response_wrapper(
859
+ pools.delete,
860
+ )
861
+ self.get = async_to_streamed_response_wrapper(
862
+ pools.get,
863
+ )
864
+ self.resize = async_to_streamed_response_wrapper(
865
+ pools.resize,
866
+ )
867
+
868
+ @cached_property
869
+ def nodes(self) -> AsyncNodesResourceWithStreamingResponse:
870
+ return AsyncNodesResourceWithStreamingResponse(self._pools.nodes)