gcore 0.1.0a2__py3-none-any.whl → 0.3.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 (293) hide show
  1. gcore/__init__.py +5 -0
  2. gcore/_base_client.py +22 -2
  3. gcore/_client.py +9 -0
  4. gcore/_models.py +2 -0
  5. gcore/_types.py +2 -0
  6. gcore/_utils/_proxy.py +4 -1
  7. gcore/_utils/_resources_proxy.py +24 -0
  8. gcore/_version.py +1 -1
  9. gcore/resources/__init__.py +14 -0
  10. gcore/resources/cloud/baremetal/flavors.py +2 -2
  11. gcore/resources/cloud/baremetal/images.py +2 -2
  12. gcore/resources/cloud/baremetal/servers.py +280 -52
  13. gcore/resources/cloud/billing_reservations.py +24 -0
  14. gcore/resources/cloud/file_shares/file_shares.py +16 -0
  15. gcore/resources/cloud/floating_ips.py +4 -4
  16. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +358 -8
  17. gcore/resources/cloud/gpu_baremetal_clusters/images.py +206 -2
  18. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +84 -4
  19. gcore/resources/cloud/inference/deployments/deployments.py +328 -10
  20. gcore/resources/cloud/instances/flavors.py +2 -2
  21. gcore/resources/cloud/instances/images.py +318 -2
  22. gcore/resources/cloud/instances/instances.py +534 -70
  23. gcore/resources/cloud/instances/interfaces.py +4 -4
  24. gcore/resources/cloud/load_balancers/flavors.py +2 -2
  25. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +302 -20
  26. gcore/resources/cloud/load_balancers/l7_policies/rules.py +326 -0
  27. gcore/resources/cloud/load_balancers/listeners.py +385 -20
  28. gcore/resources/cloud/load_balancers/load_balancers.py +392 -24
  29. gcore/resources/cloud/load_balancers/pools/health_monitors.py +24 -0
  30. gcore/resources/cloud/load_balancers/pools/members.py +34 -6
  31. gcore/resources/cloud/load_balancers/pools/pools.py +388 -8
  32. gcore/resources/cloud/networks/networks.py +72 -16
  33. gcore/resources/cloud/networks/subnets.py +6 -6
  34. gcore/resources/cloud/registries/registries.py +6 -10
  35. gcore/resources/cloud/registries/users.py +4 -10
  36. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +10 -10
  37. gcore/resources/cloud/secrets.py +56 -11
  38. gcore/resources/cloud/security_groups/security_groups.py +2 -2
  39. gcore/resources/cloud/ssh_keys.py +2 -2
  40. gcore/resources/cloud/tasks.py +203 -184
  41. gcore/resources/cloud/users/role_assignments.py +4 -4
  42. gcore/resources/cloud/volumes.py +18 -18
  43. gcore/resources/waap/__init__.py +131 -0
  44. gcore/resources/waap/advanced_rules.py +135 -0
  45. gcore/resources/waap/clients.py +135 -0
  46. gcore/resources/waap/custom_page_sets.py +805 -0
  47. gcore/resources/waap/domains/__init__.py +173 -0
  48. gcore/resources/waap/domains/advanced_rules.py +876 -0
  49. gcore/resources/waap/domains/analytics/__init__.py +33 -0
  50. gcore/resources/waap/domains/analytics/analytics.py +676 -0
  51. gcore/resources/waap/domains/analytics/requests.py +378 -0
  52. gcore/resources/waap/domains/api_discovery/__init__.py +33 -0
  53. gcore/resources/waap/domains/api_discovery/api_discovery.py +530 -0
  54. gcore/resources/waap/domains/api_discovery/scan_results.py +352 -0
  55. gcore/resources/waap/domains/api_path_groups.py +163 -0
  56. gcore/resources/waap/domains/api_paths.py +771 -0
  57. gcore/resources/waap/domains/custom_rules.py +889 -0
  58. gcore/resources/waap/domains/domains.py +914 -0
  59. gcore/resources/waap/domains/firewall_rules.py +884 -0
  60. gcore/resources/waap/domains/insight_silences.py +689 -0
  61. gcore/resources/waap/domains/insights.py +425 -0
  62. gcore/resources/waap/domains/policies.py +173 -0
  63. gcore/resources/waap/domains/settings.py +271 -0
  64. gcore/resources/waap/ip_info.py +1017 -0
  65. gcore/resources/waap/organizations.py +217 -0
  66. gcore/resources/waap/statistics.py +225 -0
  67. gcore/resources/waap/tags.py +233 -0
  68. gcore/resources/waap/waap.py +391 -0
  69. gcore/types/cloud/__init__.py +1 -0
  70. gcore/types/cloud/allowed_address_pairs.py +2 -2
  71. gcore/types/cloud/baremetal/baremetal_server.py +1 -1
  72. gcore/types/cloud/baremetal/image_list_params.py +1 -1
  73. gcore/types/cloud/baremetal/server_create_params.py +9 -9
  74. gcore/types/cloud/baremetal/server_list_params.py +8 -8
  75. gcore/types/cloud/baremetal/server_rebuild_params.py +1 -1
  76. gcore/types/cloud/baremetal_flavor.py +3 -3
  77. gcore/types/cloud/billing_reservation_list_params.py +5 -0
  78. gcore/types/cloud/container_probe_config.py +1 -1
  79. gcore/types/cloud/container_probe_config_create_param.py +2 -3
  80. gcore/types/cloud/container_scale_triggers.py +2 -2
  81. gcore/types/cloud/file_share.py +3 -0
  82. gcore/types/cloud/file_share_list_params.py +7 -1
  83. gcore/types/cloud/floating_ip_detailed.py +1 -1
  84. gcore/types/cloud/floating_ip_list_params.py +2 -2
  85. gcore/types/cloud/gpu_baremetal_cluster.py +1 -1
  86. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +21 -1
  87. gcore/types/cloud/gpu_baremetal_cluster_delete_params.py +1 -1
  88. gcore/types/cloud/gpu_baremetal_cluster_rebuild_params.py +1 -1
  89. gcore/types/cloud/gpu_baremetal_cluster_server.py +1 -1
  90. gcore/types/cloud/gpu_baremetal_clusters/image_upload_params.py +1 -1
  91. gcore/types/cloud/gpu_baremetal_clusters/server_attach_interface_params.py +10 -10
  92. gcore/types/cloud/gpu_baremetal_flavor.py +3 -3
  93. gcore/types/cloud/image.py +1 -1
  94. gcore/types/cloud/inference/deployment_create_params.py +4 -4
  95. gcore/types/cloud/inference/deployment_update_params.py +206 -9
  96. gcore/types/cloud/inference/inference.py +5 -5
  97. gcore/types/cloud/instance.py +1 -1
  98. gcore/types/cloud/instance_create_params.py +8 -10
  99. gcore/types/cloud/instance_list_params.py +8 -8
  100. gcore/types/cloud/instances/flavor_list_suitable_params.py +4 -1
  101. gcore/types/cloud/instances/image_list_params.py +1 -1
  102. gcore/types/cloud/instances/instance_flavor.py +3 -3
  103. gcore/types/cloud/instances/interface_attach_params.py +10 -10
  104. gcore/types/cloud/load_balancer_create_params.py +17 -15
  105. gcore/types/cloud/load_balancer_flavor_detail.py +3 -3
  106. gcore/types/cloud/load_balancer_l7_policy.py +5 -5
  107. gcore/types/cloud/load_balancer_list_params.py +5 -5
  108. gcore/types/cloud/load_balancer_listener_detail.py +17 -17
  109. gcore/types/cloud/load_balancer_pool.py +13 -13
  110. gcore/types/cloud/load_balancer_pool_list.py +99 -4
  111. gcore/types/cloud/load_balancers/l7_policy_create_params.py +5 -5
  112. gcore/types/cloud/load_balancers/l7_policy_replace_params.py +5 -5
  113. gcore/types/cloud/load_balancers/listener_create_params.py +6 -4
  114. gcore/types/cloud/load_balancers/listener_get_params.py +3 -1
  115. gcore/types/cloud/load_balancers/listener_list_params.py +4 -2
  116. gcore/types/cloud/load_balancers/listener_update_params.py +5 -3
  117. gcore/types/cloud/load_balancers/pool_create_params.py +6 -4
  118. gcore/types/cloud/load_balancers/pool_list_params.py +5 -6
  119. gcore/types/cloud/load_balancers/pool_update_params.py +6 -4
  120. gcore/types/cloud/load_balancers/pools/health_monitor_create_params.py +2 -0
  121. gcore/types/cloud/load_balancers/pools/member_add_params.py +5 -3
  122. gcore/types/cloud/member.py +2 -2
  123. gcore/types/cloud/network.py +22 -22
  124. gcore/types/cloud/network_create_params.py +2 -0
  125. gcore/types/cloud/network_details.py +25 -24
  126. gcore/types/cloud/network_list_params.py +15 -10
  127. gcore/types/cloud/network_update_params.py +2 -0
  128. gcore/types/cloud/networks/subnet_create_params.py +1 -1
  129. gcore/types/cloud/networks/subnet_list_params.py +2 -2
  130. gcore/types/cloud/quota_get_all_response.py +18 -0
  131. gcore/types/cloud/quota_get_by_region_response.py +18 -0
  132. gcore/types/cloud/quotas/request_create_params.py +9 -0
  133. gcore/types/cloud/quotas/request_get_response.py +9 -0
  134. gcore/types/cloud/quotas/request_list_response.py +9 -0
  135. gcore/types/cloud/region.py +4 -4
  136. gcore/types/cloud/registries/user_create_multiple_params.py +3 -5
  137. gcore/types/cloud/registries/user_create_params.py +3 -5
  138. gcore/types/cloud/registry_create_params.py +3 -5
  139. gcore/types/cloud/reserved_fixed_ip_create_params.py +2 -2
  140. gcore/types/cloud/reserved_fixed_ip_list_params.py +3 -3
  141. gcore/types/cloud/secret_list_params.py +24 -0
  142. gcore/types/cloud/security_group_list_params.py +1 -1
  143. gcore/types/cloud/session_persistence.py +1 -1
  144. gcore/types/cloud/ssh_key_created.py +3 -6
  145. gcore/types/cloud/task.py +1 -4
  146. gcore/types/cloud/task_list_params.py +56 -46
  147. gcore/types/cloud/users/role_assignment_create_params.py +1 -1
  148. gcore/types/cloud/users/role_assignment_update_params.py +1 -1
  149. gcore/types/cloud/volume_create_params.py +6 -6
  150. gcore/types/cloud/volume_list_params.py +3 -3
  151. gcore/types/waap/__init__.py +108 -0
  152. gcore/types/waap/client_me_response.py +34 -0
  153. gcore/types/waap/custom_page_set_create_params.py +35 -0
  154. gcore/types/waap/custom_page_set_list_params.py +25 -0
  155. gcore/types/waap/custom_page_set_preview_params.py +34 -0
  156. gcore/types/waap/custom_page_set_update_params.py +35 -0
  157. gcore/types/waap/domain_list_params.py +30 -0
  158. gcore/types/waap/domain_list_rule_sets_response.py +10 -0
  159. gcore/types/waap/domain_update_params.py +12 -0
  160. gcore/types/waap/domains/__init__.py +47 -0
  161. gcore/types/waap/domains/advanced_rule_create_params.py +80 -0
  162. gcore/types/waap/domains/advanced_rule_list_params.py +58 -0
  163. gcore/types/waap/domains/advanced_rule_update_params.py +83 -0
  164. gcore/types/waap/domains/analytics/__init__.py +5 -0
  165. gcore/types/waap/domains/analytics/request_list_params.py +53 -0
  166. gcore/types/waap/domains/analytics_get_event_statistics_params.py +34 -0
  167. gcore/types/waap/domains/analytics_list_ddos_attacks_params.py +28 -0
  168. gcore/types/waap/domains/analytics_list_ddos_info_params.py +31 -0
  169. gcore/types/waap/domains/analytics_list_event_traffic_params.py +26 -0
  170. gcore/types/waap/domains/analytics_list_event_traffic_response.py +10 -0
  171. gcore/types/waap/domains/api_discovery/__init__.py +7 -0
  172. gcore/types/waap/domains/api_discovery/scan_result_get_response.py +29 -0
  173. gcore/types/waap/domains/api_discovery/scan_result_list_params.py +41 -0
  174. gcore/types/waap/domains/api_discovery/scan_result_list_response.py +29 -0
  175. gcore/types/waap/domains/api_discovery_get_settings_response.py +36 -0
  176. gcore/types/waap/domains/api_discovery_scan_openapi_response.py +10 -0
  177. gcore/types/waap/domains/api_discovery_update_settings_params.py +34 -0
  178. gcore/types/waap/domains/api_discovery_update_settings_response.py +36 -0
  179. gcore/types/waap/domains/api_discovery_upload_openapi_params.py +19 -0
  180. gcore/types/waap/domains/api_discovery_upload_openapi_response.py +10 -0
  181. gcore/types/waap/domains/api_path_create_params.py +31 -0
  182. gcore/types/waap/domains/api_path_create_response.py +50 -0
  183. gcore/types/waap/domains/api_path_get_response.py +50 -0
  184. gcore/types/waap/domains/api_path_group_list_response.py +12 -0
  185. gcore/types/waap/domains/api_path_list_params.py +62 -0
  186. gcore/types/waap/domains/api_path_list_response.py +50 -0
  187. gcore/types/waap/domains/api_path_update_params.py +29 -0
  188. gcore/types/waap/domains/custom_rule_create_params.py +368 -0
  189. gcore/types/waap/domains/custom_rule_delete_multiple_params.py +13 -0
  190. gcore/types/waap/domains/custom_rule_list_params.py +35 -0
  191. gcore/types/waap/domains/custom_rule_update_params.py +371 -0
  192. gcore/types/waap/domains/firewall_rule_create_params.py +75 -0
  193. gcore/types/waap/domains/firewall_rule_delete_multiple_params.py +13 -0
  194. gcore/types/waap/domains/firewall_rule_list_params.py +33 -0
  195. gcore/types/waap/domains/firewall_rule_update_params.py +78 -0
  196. gcore/types/waap/domains/insight_list_params.py +34 -0
  197. gcore/types/waap/domains/insight_replace_params.py +17 -0
  198. gcore/types/waap/domains/insight_silence_create_params.py +28 -0
  199. gcore/types/waap/domains/insight_silence_list_params.py +33 -0
  200. gcore/types/waap/domains/insight_silence_update_params.py +28 -0
  201. gcore/types/waap/domains/setting_update_params.py +48 -0
  202. gcore/types/waap/ip_info_get_attack_time_series_params.py +12 -0
  203. gcore/types/waap/ip_info_get_attack_time_series_response.py +10 -0
  204. gcore/types/waap/ip_info_get_blocked_requests_params.py +15 -0
  205. gcore/types/waap/ip_info_get_blocked_requests_response.py +10 -0
  206. gcore/types/waap/ip_info_get_counts_params.py +19 -0
  207. gcore/types/waap/ip_info_get_ddos_attack_series_params.py +12 -0
  208. gcore/types/waap/ip_info_get_params.py +12 -0
  209. gcore/types/waap/ip_info_get_top_sessions_params.py +15 -0
  210. gcore/types/waap/ip_info_get_top_sessions_response.py +10 -0
  211. gcore/types/waap/ip_info_get_top_urls_params.py +15 -0
  212. gcore/types/waap/ip_info_get_top_urls_response.py +10 -0
  213. gcore/types/waap/ip_info_get_top_user_agents_params.py +15 -0
  214. gcore/types/waap/ip_info_get_top_user_agents_response.py +10 -0
  215. gcore/types/waap/ip_info_list_attacked_countries_params.py +12 -0
  216. gcore/types/waap/ip_info_list_attacked_countries_response.py +10 -0
  217. gcore/types/waap/organization_list_params.py +22 -0
  218. gcore/types/waap/statistic_get_usage_series_params.py +25 -0
  219. gcore/types/waap/tag_list_params.py +28 -0
  220. gcore/types/waap/waap_advanced_rule.py +83 -0
  221. gcore/types/waap/waap_advanced_rule_descriptor.py +49 -0
  222. gcore/types/waap/waap_advanced_rule_descriptor_list.py +15 -0
  223. gcore/types/waap/waap_block_csrf_page_data.py +28 -0
  224. gcore/types/waap/waap_block_csrf_page_data_param.py +28 -0
  225. gcore/types/waap/waap_block_page_data.py +28 -0
  226. gcore/types/waap/waap_block_page_data_param.py +28 -0
  227. gcore/types/waap/waap_blocked_statistics.py +36 -0
  228. gcore/types/waap/waap_captcha_page_data.py +31 -0
  229. gcore/types/waap/waap_captcha_page_data_param.py +31 -0
  230. gcore/types/waap/waap_common_tag.py +16 -0
  231. gcore/types/waap/waap_cookie_disabled_page_data.py +18 -0
  232. gcore/types/waap/waap_cookie_disabled_page_data_param.py +18 -0
  233. gcore/types/waap/waap_count_statistics.py +36 -0
  234. gcore/types/waap/waap_custom_page_preview.py +10 -0
  235. gcore/types/waap/waap_custom_page_set.py +36 -0
  236. gcore/types/waap/waap_custom_rule.py +373 -0
  237. gcore/types/waap/waap_customer_rule_state.py +7 -0
  238. gcore/types/waap/waap_ddos_attack.py +16 -0
  239. gcore/types/waap/waap_ddos_info.py +17 -0
  240. gcore/types/waap/waap_detailed_domain.py +37 -0
  241. gcore/types/waap/waap_domain_api_settings.py +22 -0
  242. gcore/types/waap/waap_domain_ddos_settings.py +31 -0
  243. gcore/types/waap/waap_domain_policy.py +29 -0
  244. gcore/types/waap/waap_domain_settings_model.py +15 -0
  245. gcore/types/waap/waap_domain_status.py +7 -0
  246. gcore/types/waap/waap_event_statistics.py +15 -0
  247. gcore/types/waap/waap_firewall_rule.py +78 -0
  248. gcore/types/waap/waap_get_account_overview_response.py +34 -0
  249. gcore/types/waap/waap_handshake_page_data.py +25 -0
  250. gcore/types/waap/waap_handshake_page_data_param.py +25 -0
  251. gcore/types/waap/waap_insight.py +38 -0
  252. gcore/types/waap/waap_insight_silence.py +28 -0
  253. gcore/types/waap/waap_insight_silence_sort_by.py +9 -0
  254. gcore/types/waap/waap_insight_sort_by.py +20 -0
  255. gcore/types/waap/waap_insight_status.py +7 -0
  256. gcore/types/waap/waap_ip_country_attack.py +16 -0
  257. gcore/types/waap/waap_ip_ddos_info_model.py +23 -0
  258. gcore/types/waap/waap_ip_info.py +57 -0
  259. gcore/types/waap/waap_ip_info_counts.py +16 -0
  260. gcore/types/waap/waap_javascript_disabled_page_data.py +18 -0
  261. gcore/types/waap/waap_javascript_disabled_page_data_param.py +18 -0
  262. gcore/types/waap/waap_network_details.py +17 -0
  263. gcore/types/waap/waap_organization.py +13 -0
  264. gcore/types/waap/waap_page_type.py +9 -0
  265. gcore/types/waap/waap_paginated_custom_page_set.py +22 -0
  266. gcore/types/waap/waap_paginated_ddos_attack.py +22 -0
  267. gcore/types/waap/waap_paginated_ddos_info.py +22 -0
  268. gcore/types/waap/waap_paginated_request_summary.py +22 -0
  269. gcore/types/waap/waap_pattern_matched_tag.py +37 -0
  270. gcore/types/waap/waap_policy_action.py +7 -0
  271. gcore/types/waap/waap_policy_mode.py +10 -0
  272. gcore/types/waap/waap_request_details.py +92 -0
  273. gcore/types/waap/waap_request_organization.py +13 -0
  274. gcore/types/waap/waap_request_summary.py +59 -0
  275. gcore/types/waap/waap_resolution.py +7 -0
  276. gcore/types/waap/waap_rule_action_type.py +7 -0
  277. gcore/types/waap/waap_rule_blocked_requests.py +16 -0
  278. gcore/types/waap/waap_rule_set.py +41 -0
  279. gcore/types/waap/waap_statistic_item.py +18 -0
  280. gcore/types/waap/waap_statistics_series.py +16 -0
  281. gcore/types/waap/waap_summary_domain.py +26 -0
  282. gcore/types/waap/waap_tag.py +16 -0
  283. gcore/types/waap/waap_time_series_attack.py +23 -0
  284. gcore/types/waap/waap_top_session.py +24 -0
  285. gcore/types/waap/waap_top_url.py +13 -0
  286. gcore/types/waap/waap_top_user_agent.py +13 -0
  287. gcore/types/waap/waap_traffic_metrics.py +68 -0
  288. gcore/types/waap/waap_traffic_type.py +28 -0
  289. gcore/types/waap/waap_user_agent_details.py +40 -0
  290. {gcore-0.1.0a2.dist-info → gcore-0.3.0.dist-info}/METADATA +3 -3
  291. {gcore-0.1.0a2.dist-info → gcore-0.3.0.dist-info}/RECORD +293 -126
  292. {gcore-0.1.0a2.dist-info → gcore-0.3.0.dist-info}/WHEEL +0 -0
  293. {gcore-0.1.0a2.dist-info → gcore-0.3.0.dist-info}/licenses/LICENSE +0 -0
@@ -111,8 +111,11 @@ class GPUBaremetalClustersResource(SyncAPIResource):
111
111
  interfaces: Iterable[gpu_baremetal_cluster_create_params.Interface],
112
112
  name: str,
113
113
  instances_count: int | NotGiven = NOT_GIVEN,
114
+ password: str | NotGiven = NOT_GIVEN,
114
115
  ssh_key_name: str | NotGiven = NOT_GIVEN,
115
116
  tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
117
+ user_data: str | NotGiven = NOT_GIVEN,
118
+ username: str | NotGiven = NOT_GIVEN,
116
119
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
117
120
  # The extra values given here take precedence over values defined on the client or passed to this method.
118
121
  extra_headers: Headers | None = None,
@@ -135,8 +138,12 @@ class GPUBaremetalClustersResource(SyncAPIResource):
135
138
 
136
139
  instances_count: Number of servers to create
137
140
 
141
+ password: A password for a bare metal server. This parameter is used to set a password for
142
+ the "Admin" user on a Windows instance, a default user or a new user on a Linux
143
+ instance
144
+
138
145
  ssh_key_name: Specifies the name of the SSH keypair, created via the
139
- <a href="#operation/SSHKeyCollectionViewSet.post">/v1/ssh_keys endpoint</a>.
146
+ [/v1/`ssh_keys` endpoint](/docs/api-reference/ssh-keys/add-or-generate-ssh-key).
140
147
 
141
148
  tags: Key-value tags to associate with the resource. A tag is a key-value pair that
142
149
  can be associated with a resource, enabling efficient filtering and grouping for
@@ -144,6 +151,13 @@ class GPUBaremetalClustersResource(SyncAPIResource):
144
151
  modified by the user. Tags are also integrated with cost reports, allowing cost
145
152
  data to be filtered based on tag keys or values.
146
153
 
154
+ user_data: String in base64 format. Must not be passed together with 'username' or
155
+ 'password'. Examples of the `user_data`:
156
+ https://cloudinit.readthedocs.io/en/latest/topics/examples.html
157
+
158
+ username: A name of a new user in the Linux instance. It may be passed with a 'password'
159
+ parameter
160
+
147
161
  extra_headers: Send extra headers
148
162
 
149
163
  extra_query: Add additional query parameters to the request
@@ -165,8 +179,11 @@ class GPUBaremetalClustersResource(SyncAPIResource):
165
179
  "interfaces": interfaces,
166
180
  "name": name,
167
181
  "instances_count": instances_count,
182
+ "password": password,
168
183
  "ssh_key_name": ssh_key_name,
169
184
  "tags": tags,
185
+ "user_data": user_data,
186
+ "username": username,
170
187
  },
171
188
  gpu_baremetal_cluster_create_params.GPUBaremetalClusterCreateParams,
172
189
  ),
@@ -253,7 +270,7 @@ class GPUBaremetalClustersResource(SyncAPIResource):
253
270
  used with floatings.
254
271
 
255
272
  floatings: Comma separated list of floating ids that should be deleted. Can't be used with
256
- delete_floatings.
273
+ `delete_floatings`.
257
274
 
258
275
  reserved_fixed_ips: Comma separated list of port IDs to be deleted with the servers
259
276
 
@@ -432,7 +449,7 @@ class GPUBaremetalClustersResource(SyncAPIResource):
432
449
  image_id: AI GPU image ID
433
450
 
434
451
  user_data:
435
- String in base64 format.Examples of the user_data:
452
+ String in base64 format.Examples of the `user_data`:
436
453
  https://cloudinit.readthedocs.io/en/latest/topics/examples.html
437
454
 
438
455
  extra_headers: Send extra headers
@@ -498,7 +515,7 @@ class GPUBaremetalClustersResource(SyncAPIResource):
498
515
  if region_id is None:
499
516
  region_id = self._client._get_cloud_region_id_path_param()
500
517
  if not cluster_id:
501
- raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
518
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
502
519
  return self._post(
503
520
  f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize",
504
521
  body=maybe_transform(
@@ -511,6 +528,164 @@ class GPUBaremetalClustersResource(SyncAPIResource):
511
528
  cast_to=TaskIDList,
512
529
  )
513
530
 
531
+ def create_and_poll(
532
+ self,
533
+ *,
534
+ project_id: int | None = None,
535
+ region_id: int | None = None,
536
+ flavor: str,
537
+ image_id: str,
538
+ interfaces: Iterable[gpu_baremetal_cluster_create_params.Interface],
539
+ name: str,
540
+ instances_count: int | NotGiven = NOT_GIVEN,
541
+ ssh_key_name: str | NotGiven = NOT_GIVEN,
542
+ tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
543
+ polling_interval_seconds: int | NotGiven = NOT_GIVEN,
544
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
545
+ # The extra values given here take precedence over values defined on the client or passed to this method.
546
+ extra_headers: Headers | None = None,
547
+ extra_query: Query | None = None,
548
+ extra_body: Body | None = None,
549
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
550
+ ) -> GPUBaremetalCluster:
551
+ """
552
+ Create a bare metal GPU cluster and wait for it to be ready.
553
+ """
554
+ response = self.create(
555
+ project_id=project_id,
556
+ region_id=region_id,
557
+ flavor=flavor,
558
+ image_id=image_id,
559
+ interfaces=interfaces,
560
+ name=name,
561
+ instances_count=instances_count,
562
+ ssh_key_name=ssh_key_name,
563
+ tags=tags,
564
+ extra_headers=extra_headers,
565
+ extra_query=extra_query,
566
+ extra_body=extra_body,
567
+ timeout=timeout,
568
+ )
569
+ if not response.tasks or len(response.tasks) != 1:
570
+ raise ValueError(f"Expected exactly one task to be created")
571
+ task = self._client.cloud.tasks.poll(
572
+ response.tasks[0],
573
+ extra_headers=extra_headers,
574
+ extra_query=extra_query,
575
+ extra_body=extra_body,
576
+ polling_interval_seconds=polling_interval_seconds,
577
+ )
578
+ if not task.created_resources or not task.created_resources.ai_clusters:
579
+ raise ValueError("No cluster was created")
580
+ cluster_id = task.created_resources.ai_clusters[0]
581
+ return self.get(
582
+ cluster_id=cluster_id,
583
+ project_id=project_id,
584
+ region_id=region_id,
585
+ extra_headers=extra_headers,
586
+ extra_query=extra_query,
587
+ extra_body=extra_body,
588
+ timeout=timeout,
589
+ )
590
+
591
+ def rebuild_and_poll(
592
+ self,
593
+ cluster_id: str,
594
+ *,
595
+ project_id: int | None = None,
596
+ region_id: int | None = None,
597
+ nodes: List[str],
598
+ image_id: Optional[str] | NotGiven = NOT_GIVEN,
599
+ user_data: Optional[str] | NotGiven = NOT_GIVEN,
600
+ polling_interval_seconds: int | NotGiven = NOT_GIVEN,
601
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
602
+ # The extra values given here take precedence over values defined on the client or passed to this method.
603
+ extra_headers: Headers | None = None,
604
+ extra_query: Query | None = None,
605
+ extra_body: Body | None = None,
606
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
607
+ ) -> GPUBaremetalCluster:
608
+ """
609
+ Rebuild a bare metal GPU cluster and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method.
610
+ """
611
+ response = self.rebuild(
612
+ cluster_id=cluster_id,
613
+ project_id=project_id,
614
+ region_id=region_id,
615
+ nodes=nodes,
616
+ image_id=image_id,
617
+ user_data=user_data,
618
+ extra_headers=extra_headers,
619
+ extra_query=extra_query,
620
+ extra_body=extra_body,
621
+ timeout=timeout,
622
+ )
623
+ if not response.tasks:
624
+ raise ValueError("Expected at least one task to be created")
625
+ self._client.cloud.tasks.poll(
626
+ response.tasks[0],
627
+ extra_headers=extra_headers,
628
+ extra_query=extra_query,
629
+ extra_body=extra_body,
630
+ polling_interval_seconds=polling_interval_seconds,
631
+ )
632
+ return self.get(
633
+ cluster_id=cluster_id,
634
+ project_id=project_id,
635
+ region_id=region_id,
636
+ extra_headers=extra_headers,
637
+ extra_query=extra_query,
638
+ extra_body=extra_body,
639
+ timeout=timeout,
640
+ )
641
+
642
+ def resize_and_poll(
643
+ self,
644
+ cluster_id: str,
645
+ *,
646
+ project_id: int | None = None,
647
+ region_id: int | None = None,
648
+ instances_count: int,
649
+ polling_interval_seconds: int | NotGiven = NOT_GIVEN,
650
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
651
+ # The extra values given here take precedence over values defined on the client or passed to this method.
652
+ extra_headers: Headers | None = None,
653
+ extra_query: Query | None = None,
654
+ extra_body: Body | None = None,
655
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
656
+ ) -> GPUBaremetalCluster:
657
+ """
658
+ Resize a bare metal GPU cluster and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method.
659
+ """
660
+ response = self.resize(
661
+ cluster_id=cluster_id,
662
+ project_id=project_id,
663
+ region_id=region_id,
664
+ instances_count=instances_count,
665
+ extra_headers=extra_headers,
666
+ extra_query=extra_query,
667
+ extra_body=extra_body,
668
+ timeout=timeout,
669
+ )
670
+ if not response.tasks:
671
+ raise ValueError("Expected at least one task to be created")
672
+ self._client.cloud.tasks.poll(
673
+ response.tasks[0],
674
+ extra_headers=extra_headers,
675
+ extra_query=extra_query,
676
+ extra_body=extra_body,
677
+ polling_interval_seconds=polling_interval_seconds,
678
+ )
679
+ return self.get(
680
+ cluster_id=cluster_id,
681
+ project_id=project_id,
682
+ region_id=region_id,
683
+ extra_headers=extra_headers,
684
+ extra_query=extra_query,
685
+ extra_body=extra_body,
686
+ timeout=timeout,
687
+ )
688
+
514
689
 
515
690
  class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
516
691
  @cached_property
@@ -558,8 +733,11 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
558
733
  interfaces: Iterable[gpu_baremetal_cluster_create_params.Interface],
559
734
  name: str,
560
735
  instances_count: int | NotGiven = NOT_GIVEN,
736
+ password: str | NotGiven = NOT_GIVEN,
561
737
  ssh_key_name: str | NotGiven = NOT_GIVEN,
562
738
  tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
739
+ user_data: str | NotGiven = NOT_GIVEN,
740
+ username: str | NotGiven = NOT_GIVEN,
563
741
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
564
742
  # The extra values given here take precedence over values defined on the client or passed to this method.
565
743
  extra_headers: Headers | None = None,
@@ -582,8 +760,12 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
582
760
 
583
761
  instances_count: Number of servers to create
584
762
 
763
+ password: A password for a bare metal server. This parameter is used to set a password for
764
+ the "Admin" user on a Windows instance, a default user or a new user on a Linux
765
+ instance
766
+
585
767
  ssh_key_name: Specifies the name of the SSH keypair, created via the
586
- <a href="#operation/SSHKeyCollectionViewSet.post">/v1/ssh_keys endpoint</a>.
768
+ [/v1/`ssh_keys` endpoint](/docs/api-reference/ssh-keys/add-or-generate-ssh-key).
587
769
 
588
770
  tags: Key-value tags to associate with the resource. A tag is a key-value pair that
589
771
  can be associated with a resource, enabling efficient filtering and grouping for
@@ -591,6 +773,13 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
591
773
  modified by the user. Tags are also integrated with cost reports, allowing cost
592
774
  data to be filtered based on tag keys or values.
593
775
 
776
+ user_data: String in base64 format. Must not be passed together with 'username' or
777
+ 'password'. Examples of the `user_data`:
778
+ https://cloudinit.readthedocs.io/en/latest/topics/examples.html
779
+
780
+ username: A name of a new user in the Linux instance. It may be passed with a 'password'
781
+ parameter
782
+
594
783
  extra_headers: Send extra headers
595
784
 
596
785
  extra_query: Add additional query parameters to the request
@@ -612,8 +801,11 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
612
801
  "interfaces": interfaces,
613
802
  "name": name,
614
803
  "instances_count": instances_count,
804
+ "password": password,
615
805
  "ssh_key_name": ssh_key_name,
616
806
  "tags": tags,
807
+ "user_data": user_data,
808
+ "username": username,
617
809
  },
618
810
  gpu_baremetal_cluster_create_params.GPUBaremetalClusterCreateParams,
619
811
  ),
@@ -700,7 +892,7 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
700
892
  used with floatings.
701
893
 
702
894
  floatings: Comma separated list of floating ids that should be deleted. Can't be used with
703
- delete_floatings.
895
+ `delete_floatings`.
704
896
 
705
897
  reserved_fixed_ips: Comma separated list of port IDs to be deleted with the servers
706
898
 
@@ -879,7 +1071,7 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
879
1071
  image_id: AI GPU image ID
880
1072
 
881
1073
  user_data:
882
- String in base64 format.Examples of the user_data:
1074
+ String in base64 format.Examples of the `user_data`:
883
1075
  https://cloudinit.readthedocs.io/en/latest/topics/examples.html
884
1076
 
885
1077
  extra_headers: Send extra headers
@@ -945,7 +1137,7 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
945
1137
  if region_id is None:
946
1138
  region_id = self._client._get_cloud_region_id_path_param()
947
1139
  if not cluster_id:
948
- raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
1140
+ raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
949
1141
  return await self._post(
950
1142
  f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize",
951
1143
  body=await async_maybe_transform(
@@ -958,6 +1150,164 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
958
1150
  cast_to=TaskIDList,
959
1151
  )
960
1152
 
1153
+ async def create_and_poll(
1154
+ self,
1155
+ *,
1156
+ project_id: int | None = None,
1157
+ region_id: int | None = None,
1158
+ flavor: str,
1159
+ image_id: str,
1160
+ interfaces: Iterable[gpu_baremetal_cluster_create_params.Interface],
1161
+ name: str,
1162
+ instances_count: int | NotGiven = NOT_GIVEN,
1163
+ ssh_key_name: str | NotGiven = NOT_GIVEN,
1164
+ tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
1165
+ polling_interval_seconds: int | NotGiven = NOT_GIVEN,
1166
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1167
+ # The extra values given here take precedence over values defined on the client or passed to this method.
1168
+ extra_headers: Headers | None = None,
1169
+ extra_query: Query | None = None,
1170
+ extra_body: Body | None = None,
1171
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
1172
+ ) -> GPUBaremetalCluster:
1173
+ """
1174
+ Create a bare metal GPU cluster and wait for it to be ready.
1175
+ """
1176
+ response = await self.create(
1177
+ project_id=project_id,
1178
+ region_id=region_id,
1179
+ flavor=flavor,
1180
+ image_id=image_id,
1181
+ interfaces=interfaces,
1182
+ name=name,
1183
+ instances_count=instances_count,
1184
+ ssh_key_name=ssh_key_name,
1185
+ tags=tags,
1186
+ extra_headers=extra_headers,
1187
+ extra_query=extra_query,
1188
+ extra_body=extra_body,
1189
+ timeout=timeout,
1190
+ )
1191
+ if not response.tasks or len(response.tasks) != 1:
1192
+ raise ValueError(f"Expected exactly one task to be created")
1193
+ task = await self._client.cloud.tasks.poll(
1194
+ response.tasks[0],
1195
+ extra_headers=extra_headers,
1196
+ extra_query=extra_query,
1197
+ extra_body=extra_body,
1198
+ polling_interval_seconds=polling_interval_seconds,
1199
+ )
1200
+ if not task.created_resources or not task.created_resources.ai_clusters:
1201
+ raise ValueError("No cluster was created")
1202
+ cluster_id = task.created_resources.ai_clusters[0]
1203
+ return await self.get(
1204
+ cluster_id=cluster_id,
1205
+ project_id=project_id,
1206
+ region_id=region_id,
1207
+ extra_headers=extra_headers,
1208
+ extra_query=extra_query,
1209
+ extra_body=extra_body,
1210
+ timeout=timeout,
1211
+ )
1212
+
1213
+ async def rebuild_and_poll(
1214
+ self,
1215
+ cluster_id: str,
1216
+ *,
1217
+ project_id: int | None = None,
1218
+ region_id: int | None = None,
1219
+ nodes: List[str],
1220
+ image_id: Optional[str] | NotGiven = NOT_GIVEN,
1221
+ user_data: Optional[str] | NotGiven = NOT_GIVEN,
1222
+ polling_interval_seconds: int | NotGiven = NOT_GIVEN,
1223
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1224
+ # The extra values given here take precedence over values defined on the client or passed to this method.
1225
+ extra_headers: Headers | None = None,
1226
+ extra_query: Query | None = None,
1227
+ extra_body: Body | None = None,
1228
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
1229
+ ) -> GPUBaremetalCluster:
1230
+ """
1231
+ Rebuild a bare metal GPU cluster and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method.
1232
+ """
1233
+ response = await self.rebuild(
1234
+ cluster_id=cluster_id,
1235
+ project_id=project_id,
1236
+ region_id=region_id,
1237
+ nodes=nodes,
1238
+ image_id=image_id,
1239
+ user_data=user_data,
1240
+ extra_headers=extra_headers,
1241
+ extra_query=extra_query,
1242
+ extra_body=extra_body,
1243
+ timeout=timeout,
1244
+ )
1245
+ if not response.tasks:
1246
+ raise ValueError("Expected at least one task to be created")
1247
+ await self._client.cloud.tasks.poll(
1248
+ response.tasks[0],
1249
+ extra_headers=extra_headers,
1250
+ extra_query=extra_query,
1251
+ extra_body=extra_body,
1252
+ polling_interval_seconds=polling_interval_seconds,
1253
+ )
1254
+ return await self.get(
1255
+ cluster_id=cluster_id,
1256
+ project_id=project_id,
1257
+ region_id=region_id,
1258
+ extra_headers=extra_headers,
1259
+ extra_query=extra_query,
1260
+ extra_body=extra_body,
1261
+ timeout=timeout,
1262
+ )
1263
+
1264
+ async def resize_and_poll(
1265
+ self,
1266
+ cluster_id: str,
1267
+ *,
1268
+ project_id: int | None = None,
1269
+ region_id: int | None = None,
1270
+ instances_count: int,
1271
+ polling_interval_seconds: int | NotGiven = NOT_GIVEN,
1272
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1273
+ # The extra values given here take precedence over values defined on the client or passed to this method.
1274
+ extra_headers: Headers | None = None,
1275
+ extra_query: Query | None = None,
1276
+ extra_body: Body | None = None,
1277
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
1278
+ ) -> GPUBaremetalCluster:
1279
+ """
1280
+ Resize a bare metal GPU cluster and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method.
1281
+ """
1282
+ response = await self.resize(
1283
+ cluster_id=cluster_id,
1284
+ project_id=project_id,
1285
+ region_id=region_id,
1286
+ instances_count=instances_count,
1287
+ extra_headers=extra_headers,
1288
+ extra_query=extra_query,
1289
+ extra_body=extra_body,
1290
+ timeout=timeout,
1291
+ )
1292
+ if not response.tasks:
1293
+ raise ValueError("Expected at least one task to be created")
1294
+ await self._client.cloud.tasks.poll(
1295
+ response.tasks[0],
1296
+ extra_headers=extra_headers,
1297
+ extra_query=extra_query,
1298
+ extra_body=extra_body,
1299
+ polling_interval_seconds=polling_interval_seconds,
1300
+ )
1301
+ return await self.get(
1302
+ cluster_id=cluster_id,
1303
+ project_id=project_id,
1304
+ region_id=region_id,
1305
+ extra_headers=extra_headers,
1306
+ extra_query=extra_query,
1307
+ extra_body=extra_body,
1308
+ timeout=timeout,
1309
+ )
1310
+
961
1311
 
962
1312
  class GPUBaremetalClustersResourceWithRawResponse:
963
1313
  def __init__(self, gpu_baremetal_clusters: GPUBaremetalClustersResource) -> None: