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