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