gcore 0.1.0a1__py3-none-any.whl

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

Potentially problematic release.


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

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