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,875 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Iterable, Optional
6
+
7
+ import httpx
8
+
9
+ from ...._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 ....pagination import SyncOffsetPage, AsyncOffsetPage
20
+ from ...._base_client import AsyncPaginator, make_request_options
21
+ from ....types.cloud.networks import (
22
+ router_list_params,
23
+ router_create_params,
24
+ router_update_params,
25
+ router_attach_subnet_params,
26
+ router_detach_subnet_params,
27
+ )
28
+ from ....types.cloud.task_id_list import TaskIDList
29
+ from ....types.cloud.networks.router import Router
30
+
31
+ __all__ = ["RoutersResource", "AsyncRoutersResource"]
32
+
33
+
34
+ class RoutersResource(SyncAPIResource):
35
+ @cached_property
36
+ def with_raw_response(self) -> RoutersResourceWithRawResponse:
37
+ """
38
+ This property can be used as a prefix for any HTTP method call to return
39
+ the raw response object instead of the parsed content.
40
+
41
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
42
+ """
43
+ return RoutersResourceWithRawResponse(self)
44
+
45
+ @cached_property
46
+ def with_streaming_response(self) -> RoutersResourceWithStreamingResponse:
47
+ """
48
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
49
+
50
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
51
+ """
52
+ return RoutersResourceWithStreamingResponse(self)
53
+
54
+ def create(
55
+ self,
56
+ *,
57
+ project_id: int | None = None,
58
+ region_id: int | None = None,
59
+ name: str,
60
+ external_gateway_info: Optional[router_create_params.ExternalGatewayInfo] | NotGiven = NOT_GIVEN,
61
+ interfaces: Optional[Iterable[router_create_params.Interface]] | NotGiven = NOT_GIVEN,
62
+ routes: Optional[Iterable[router_create_params.Route]] | NotGiven = NOT_GIVEN,
63
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
64
+ # The extra values given here take precedence over values defined on the client or passed to this method.
65
+ extra_headers: Headers | None = None,
66
+ extra_query: Query | None = None,
67
+ extra_body: Body | None = None,
68
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
69
+ ) -> TaskIDList:
70
+ """
71
+ Create router
72
+
73
+ Args:
74
+ name: name of router
75
+
76
+ external_gateway_info
77
+
78
+ interfaces: List of interfaces to attach to router immediately after creation.
79
+
80
+ routes: List of custom routes.
81
+
82
+ extra_headers: Send extra headers
83
+
84
+ extra_query: Add additional query parameters to the request
85
+
86
+ extra_body: Add additional JSON properties to the request
87
+
88
+ timeout: Override the client-level default timeout for this request, in seconds
89
+ """
90
+ if project_id is None:
91
+ project_id = self._client._get_cloud_project_id_path_param()
92
+ if region_id is None:
93
+ region_id = self._client._get_cloud_region_id_path_param()
94
+ return self._post(
95
+ f"/cloud/v1/routers/{project_id}/{region_id}",
96
+ body=maybe_transform(
97
+ {
98
+ "name": name,
99
+ "external_gateway_info": external_gateway_info,
100
+ "interfaces": interfaces,
101
+ "routes": routes,
102
+ },
103
+ router_create_params.RouterCreateParams,
104
+ ),
105
+ options=make_request_options(
106
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
107
+ ),
108
+ cast_to=TaskIDList,
109
+ )
110
+
111
+ def update(
112
+ self,
113
+ router_id: str,
114
+ *,
115
+ project_id: int | None = None,
116
+ region_id: int | None = None,
117
+ external_gateway_info: Optional[router_update_params.ExternalGatewayInfo] | NotGiven = NOT_GIVEN,
118
+ name: Optional[str] | NotGiven = NOT_GIVEN,
119
+ routes: Optional[Iterable[router_update_params.Route]] | NotGiven = NOT_GIVEN,
120
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
121
+ # The extra values given here take precedence over values defined on the client or passed to this method.
122
+ extra_headers: Headers | None = None,
123
+ extra_query: Query | None = None,
124
+ extra_body: Body | None = None,
125
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
126
+ ) -> Router:
127
+ """
128
+ Update router
129
+
130
+ Args:
131
+ external_gateway_info: New external gateway.
132
+
133
+ name: New name of router
134
+
135
+ routes: List of custom routes.
136
+
137
+ extra_headers: Send extra headers
138
+
139
+ extra_query: Add additional query parameters to the request
140
+
141
+ extra_body: Add additional JSON properties to the request
142
+
143
+ timeout: Override the client-level default timeout for this request, in seconds
144
+ """
145
+ if project_id is None:
146
+ project_id = self._client._get_cloud_project_id_path_param()
147
+ if region_id is None:
148
+ region_id = self._client._get_cloud_region_id_path_param()
149
+ if not router_id:
150
+ raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}")
151
+ return self._patch(
152
+ f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}",
153
+ body=maybe_transform(
154
+ {
155
+ "external_gateway_info": external_gateway_info,
156
+ "name": name,
157
+ "routes": routes,
158
+ },
159
+ router_update_params.RouterUpdateParams,
160
+ ),
161
+ options=make_request_options(
162
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
163
+ ),
164
+ cast_to=Router,
165
+ )
166
+
167
+ def list(
168
+ self,
169
+ *,
170
+ project_id: int | None = None,
171
+ region_id: int | None = None,
172
+ limit: int | NotGiven = NOT_GIVEN,
173
+ offset: int | NotGiven = NOT_GIVEN,
174
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
175
+ # The extra values given here take precedence over values defined on the client or passed to this method.
176
+ extra_headers: Headers | None = None,
177
+ extra_query: Query | None = None,
178
+ extra_body: Body | None = None,
179
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
180
+ ) -> SyncOffsetPage[Router]:
181
+ """
182
+ List routers
183
+
184
+ Args:
185
+ limit: Limit the number of returned limit request entities.
186
+
187
+ offset: Offset value is used to exclude the first set of records from the result.
188
+
189
+ extra_headers: Send extra headers
190
+
191
+ extra_query: Add additional query parameters to the request
192
+
193
+ extra_body: Add additional JSON properties to the request
194
+
195
+ timeout: Override the client-level default timeout for this request, in seconds
196
+ """
197
+ if project_id is None:
198
+ project_id = self._client._get_cloud_project_id_path_param()
199
+ if region_id is None:
200
+ region_id = self._client._get_cloud_region_id_path_param()
201
+ return self._get_api_list(
202
+ f"/cloud/v1/routers/{project_id}/{region_id}",
203
+ page=SyncOffsetPage[Router],
204
+ options=make_request_options(
205
+ extra_headers=extra_headers,
206
+ extra_query=extra_query,
207
+ extra_body=extra_body,
208
+ timeout=timeout,
209
+ query=maybe_transform(
210
+ {
211
+ "limit": limit,
212
+ "offset": offset,
213
+ },
214
+ router_list_params.RouterListParams,
215
+ ),
216
+ ),
217
+ model=Router,
218
+ )
219
+
220
+ def delete(
221
+ self,
222
+ router_id: str,
223
+ *,
224
+ project_id: int | None = None,
225
+ region_id: int | None = None,
226
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
227
+ # The extra values given here take precedence over values defined on the client or passed to this method.
228
+ extra_headers: Headers | None = None,
229
+ extra_query: Query | None = None,
230
+ extra_body: Body | None = None,
231
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
232
+ ) -> TaskIDList:
233
+ """
234
+ Delete router
235
+
236
+ Args:
237
+ extra_headers: Send extra headers
238
+
239
+ extra_query: Add additional query parameters to the request
240
+
241
+ extra_body: Add additional JSON properties to the request
242
+
243
+ timeout: Override the client-level default timeout for this request, in seconds
244
+ """
245
+ if project_id is None:
246
+ project_id = self._client._get_cloud_project_id_path_param()
247
+ if region_id is None:
248
+ region_id = self._client._get_cloud_region_id_path_param()
249
+ if not router_id:
250
+ raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}")
251
+ return self._delete(
252
+ f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}",
253
+ options=make_request_options(
254
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
255
+ ),
256
+ cast_to=TaskIDList,
257
+ )
258
+
259
+ def attach_subnet(
260
+ self,
261
+ router_id: str,
262
+ *,
263
+ project_id: int | None = None,
264
+ region_id: int | None = None,
265
+ subnet_id: str,
266
+ ip_address: str | NotGiven = NOT_GIVEN,
267
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
268
+ # The extra values given here take precedence over values defined on the client or passed to this method.
269
+ extra_headers: Headers | None = None,
270
+ extra_query: Query | None = None,
271
+ extra_body: Body | None = None,
272
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
273
+ ) -> Router:
274
+ """
275
+ Attach subnet to router
276
+
277
+ Args:
278
+ project_id: Project ID
279
+
280
+ region_id: Region ID
281
+
282
+ router_id: Router ID
283
+
284
+ subnet_id: Subnet ID on which router interface will be created
285
+
286
+ ip_address: IP address to assign for router's interface, if not specified, address will be
287
+ selected automatically
288
+
289
+ extra_headers: Send extra headers
290
+
291
+ extra_query: Add additional query parameters to the request
292
+
293
+ extra_body: Add additional JSON properties to the request
294
+
295
+ timeout: Override the client-level default timeout for this request, in seconds
296
+ """
297
+ if project_id is None:
298
+ project_id = self._client._get_cloud_project_id_path_param()
299
+ if region_id is None:
300
+ region_id = self._client._get_cloud_region_id_path_param()
301
+ if not router_id:
302
+ raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}")
303
+ return self._post(
304
+ f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}/attach",
305
+ body=maybe_transform(
306
+ {
307
+ "subnet_id": subnet_id,
308
+ "ip_address": ip_address,
309
+ },
310
+ router_attach_subnet_params.RouterAttachSubnetParams,
311
+ ),
312
+ options=make_request_options(
313
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
314
+ ),
315
+ cast_to=Router,
316
+ )
317
+
318
+ def detach_subnet(
319
+ self,
320
+ router_id: str,
321
+ *,
322
+ project_id: int | None = None,
323
+ region_id: int | None = None,
324
+ subnet_id: str,
325
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
326
+ # The extra values given here take precedence over values defined on the client or passed to this method.
327
+ extra_headers: Headers | None = None,
328
+ extra_query: Query | None = None,
329
+ extra_body: Body | None = None,
330
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
331
+ ) -> Router:
332
+ """
333
+ Detach subnet from router
334
+
335
+ Args:
336
+ subnet_id: Target IP is identified by it's subnet
337
+
338
+ extra_headers: Send extra headers
339
+
340
+ extra_query: Add additional query parameters to the request
341
+
342
+ extra_body: Add additional JSON properties to the request
343
+
344
+ timeout: Override the client-level default timeout for this request, in seconds
345
+ """
346
+ if project_id is None:
347
+ project_id = self._client._get_cloud_project_id_path_param()
348
+ if region_id is None:
349
+ region_id = self._client._get_cloud_region_id_path_param()
350
+ if not router_id:
351
+ raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}")
352
+ return self._post(
353
+ f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}/detach",
354
+ body=maybe_transform({"subnet_id": subnet_id}, router_detach_subnet_params.RouterDetachSubnetParams),
355
+ options=make_request_options(
356
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
357
+ ),
358
+ cast_to=Router,
359
+ )
360
+
361
+ def get(
362
+ self,
363
+ router_id: str,
364
+ *,
365
+ project_id: int | None = None,
366
+ region_id: int | None = None,
367
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
368
+ # The extra values given here take precedence over values defined on the client or passed to this method.
369
+ extra_headers: Headers | None = None,
370
+ extra_query: Query | None = None,
371
+ extra_body: Body | None = None,
372
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
373
+ ) -> Router:
374
+ """
375
+ Get specific router
376
+
377
+ Args:
378
+ extra_headers: Send extra headers
379
+
380
+ extra_query: Add additional query parameters to the request
381
+
382
+ extra_body: Add additional JSON properties to the request
383
+
384
+ timeout: Override the client-level default timeout for this request, in seconds
385
+ """
386
+ if project_id is None:
387
+ project_id = self._client._get_cloud_project_id_path_param()
388
+ if region_id is None:
389
+ region_id = self._client._get_cloud_region_id_path_param()
390
+ if not router_id:
391
+ raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}")
392
+ return self._get(
393
+ f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}",
394
+ options=make_request_options(
395
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
396
+ ),
397
+ cast_to=Router,
398
+ )
399
+
400
+
401
+ class AsyncRoutersResource(AsyncAPIResource):
402
+ @cached_property
403
+ def with_raw_response(self) -> AsyncRoutersResourceWithRawResponse:
404
+ """
405
+ This property can be used as a prefix for any HTTP method call to return
406
+ the raw response object instead of the parsed content.
407
+
408
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
409
+ """
410
+ return AsyncRoutersResourceWithRawResponse(self)
411
+
412
+ @cached_property
413
+ def with_streaming_response(self) -> AsyncRoutersResourceWithStreamingResponse:
414
+ """
415
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
416
+
417
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
418
+ """
419
+ return AsyncRoutersResourceWithStreamingResponse(self)
420
+
421
+ async def create(
422
+ self,
423
+ *,
424
+ project_id: int | None = None,
425
+ region_id: int | None = None,
426
+ name: str,
427
+ external_gateway_info: Optional[router_create_params.ExternalGatewayInfo] | NotGiven = NOT_GIVEN,
428
+ interfaces: Optional[Iterable[router_create_params.Interface]] | NotGiven = NOT_GIVEN,
429
+ routes: Optional[Iterable[router_create_params.Route]] | NotGiven = NOT_GIVEN,
430
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
431
+ # The extra values given here take precedence over values defined on the client or passed to this method.
432
+ extra_headers: Headers | None = None,
433
+ extra_query: Query | None = None,
434
+ extra_body: Body | None = None,
435
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
436
+ ) -> TaskIDList:
437
+ """
438
+ Create router
439
+
440
+ Args:
441
+ name: name of router
442
+
443
+ external_gateway_info
444
+
445
+ interfaces: List of interfaces to attach to router immediately after creation.
446
+
447
+ routes: List of custom routes.
448
+
449
+ extra_headers: Send extra headers
450
+
451
+ extra_query: Add additional query parameters to the request
452
+
453
+ extra_body: Add additional JSON properties to the request
454
+
455
+ timeout: Override the client-level default timeout for this request, in seconds
456
+ """
457
+ if project_id is None:
458
+ project_id = self._client._get_cloud_project_id_path_param()
459
+ if region_id is None:
460
+ region_id = self._client._get_cloud_region_id_path_param()
461
+ return await self._post(
462
+ f"/cloud/v1/routers/{project_id}/{region_id}",
463
+ body=await async_maybe_transform(
464
+ {
465
+ "name": name,
466
+ "external_gateway_info": external_gateway_info,
467
+ "interfaces": interfaces,
468
+ "routes": routes,
469
+ },
470
+ router_create_params.RouterCreateParams,
471
+ ),
472
+ options=make_request_options(
473
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
474
+ ),
475
+ cast_to=TaskIDList,
476
+ )
477
+
478
+ async def update(
479
+ self,
480
+ router_id: str,
481
+ *,
482
+ project_id: int | None = None,
483
+ region_id: int | None = None,
484
+ external_gateway_info: Optional[router_update_params.ExternalGatewayInfo] | NotGiven = NOT_GIVEN,
485
+ name: Optional[str] | NotGiven = NOT_GIVEN,
486
+ routes: Optional[Iterable[router_update_params.Route]] | NotGiven = NOT_GIVEN,
487
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
488
+ # The extra values given here take precedence over values defined on the client or passed to this method.
489
+ extra_headers: Headers | None = None,
490
+ extra_query: Query | None = None,
491
+ extra_body: Body | None = None,
492
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
493
+ ) -> Router:
494
+ """
495
+ Update router
496
+
497
+ Args:
498
+ external_gateway_info: New external gateway.
499
+
500
+ name: New name of router
501
+
502
+ routes: List of custom routes.
503
+
504
+ extra_headers: Send extra headers
505
+
506
+ extra_query: Add additional query parameters to the request
507
+
508
+ extra_body: Add additional JSON properties to the request
509
+
510
+ timeout: Override the client-level default timeout for this request, in seconds
511
+ """
512
+ if project_id is None:
513
+ project_id = self._client._get_cloud_project_id_path_param()
514
+ if region_id is None:
515
+ region_id = self._client._get_cloud_region_id_path_param()
516
+ if not router_id:
517
+ raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}")
518
+ return await self._patch(
519
+ f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}",
520
+ body=await async_maybe_transform(
521
+ {
522
+ "external_gateway_info": external_gateway_info,
523
+ "name": name,
524
+ "routes": routes,
525
+ },
526
+ router_update_params.RouterUpdateParams,
527
+ ),
528
+ options=make_request_options(
529
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
530
+ ),
531
+ cast_to=Router,
532
+ )
533
+
534
+ def list(
535
+ self,
536
+ *,
537
+ project_id: int | None = None,
538
+ region_id: int | None = None,
539
+ limit: int | NotGiven = NOT_GIVEN,
540
+ offset: int | NotGiven = NOT_GIVEN,
541
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
542
+ # The extra values given here take precedence over values defined on the client or passed to this method.
543
+ extra_headers: Headers | None = None,
544
+ extra_query: Query | None = None,
545
+ extra_body: Body | None = None,
546
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
547
+ ) -> AsyncPaginator[Router, AsyncOffsetPage[Router]]:
548
+ """
549
+ List routers
550
+
551
+ Args:
552
+ limit: Limit the number of returned limit request entities.
553
+
554
+ offset: Offset value is used to exclude the first set of records from the result.
555
+
556
+ extra_headers: Send extra headers
557
+
558
+ extra_query: Add additional query parameters to the request
559
+
560
+ extra_body: Add additional JSON properties to the request
561
+
562
+ timeout: Override the client-level default timeout for this request, in seconds
563
+ """
564
+ if project_id is None:
565
+ project_id = self._client._get_cloud_project_id_path_param()
566
+ if region_id is None:
567
+ region_id = self._client._get_cloud_region_id_path_param()
568
+ return self._get_api_list(
569
+ f"/cloud/v1/routers/{project_id}/{region_id}",
570
+ page=AsyncOffsetPage[Router],
571
+ options=make_request_options(
572
+ extra_headers=extra_headers,
573
+ extra_query=extra_query,
574
+ extra_body=extra_body,
575
+ timeout=timeout,
576
+ query=maybe_transform(
577
+ {
578
+ "limit": limit,
579
+ "offset": offset,
580
+ },
581
+ router_list_params.RouterListParams,
582
+ ),
583
+ ),
584
+ model=Router,
585
+ )
586
+
587
+ async def delete(
588
+ self,
589
+ router_id: str,
590
+ *,
591
+ project_id: int | None = None,
592
+ region_id: int | None = None,
593
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
594
+ # The extra values given here take precedence over values defined on the client or passed to this method.
595
+ extra_headers: Headers | None = None,
596
+ extra_query: Query | None = None,
597
+ extra_body: Body | None = None,
598
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
599
+ ) -> TaskIDList:
600
+ """
601
+ Delete router
602
+
603
+ Args:
604
+ extra_headers: Send extra headers
605
+
606
+ extra_query: Add additional query parameters to the request
607
+
608
+ extra_body: Add additional JSON properties to the request
609
+
610
+ timeout: Override the client-level default timeout for this request, in seconds
611
+ """
612
+ if project_id is None:
613
+ project_id = self._client._get_cloud_project_id_path_param()
614
+ if region_id is None:
615
+ region_id = self._client._get_cloud_region_id_path_param()
616
+ if not router_id:
617
+ raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}")
618
+ return await self._delete(
619
+ f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}",
620
+ options=make_request_options(
621
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
622
+ ),
623
+ cast_to=TaskIDList,
624
+ )
625
+
626
+ async def attach_subnet(
627
+ self,
628
+ router_id: str,
629
+ *,
630
+ project_id: int | None = None,
631
+ region_id: int | None = None,
632
+ subnet_id: str,
633
+ ip_address: str | NotGiven = NOT_GIVEN,
634
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
635
+ # The extra values given here take precedence over values defined on the client or passed to this method.
636
+ extra_headers: Headers | None = None,
637
+ extra_query: Query | None = None,
638
+ extra_body: Body | None = None,
639
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
640
+ ) -> Router:
641
+ """
642
+ Attach subnet to router
643
+
644
+ Args:
645
+ project_id: Project ID
646
+
647
+ region_id: Region ID
648
+
649
+ router_id: Router ID
650
+
651
+ subnet_id: Subnet ID on which router interface will be created
652
+
653
+ ip_address: IP address to assign for router's interface, if not specified, address will be
654
+ selected automatically
655
+
656
+ extra_headers: Send extra headers
657
+
658
+ extra_query: Add additional query parameters to the request
659
+
660
+ extra_body: Add additional JSON properties to the request
661
+
662
+ timeout: Override the client-level default timeout for this request, in seconds
663
+ """
664
+ if project_id is None:
665
+ project_id = self._client._get_cloud_project_id_path_param()
666
+ if region_id is None:
667
+ region_id = self._client._get_cloud_region_id_path_param()
668
+ if not router_id:
669
+ raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}")
670
+ return await self._post(
671
+ f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}/attach",
672
+ body=await async_maybe_transform(
673
+ {
674
+ "subnet_id": subnet_id,
675
+ "ip_address": ip_address,
676
+ },
677
+ router_attach_subnet_params.RouterAttachSubnetParams,
678
+ ),
679
+ options=make_request_options(
680
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
681
+ ),
682
+ cast_to=Router,
683
+ )
684
+
685
+ async def detach_subnet(
686
+ self,
687
+ router_id: str,
688
+ *,
689
+ project_id: int | None = None,
690
+ region_id: int | None = None,
691
+ subnet_id: str,
692
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
693
+ # The extra values given here take precedence over values defined on the client or passed to this method.
694
+ extra_headers: Headers | None = None,
695
+ extra_query: Query | None = None,
696
+ extra_body: Body | None = None,
697
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
698
+ ) -> Router:
699
+ """
700
+ Detach subnet from router
701
+
702
+ Args:
703
+ subnet_id: Target IP is identified by it's subnet
704
+
705
+ extra_headers: Send extra headers
706
+
707
+ extra_query: Add additional query parameters to the request
708
+
709
+ extra_body: Add additional JSON properties to the request
710
+
711
+ timeout: Override the client-level default timeout for this request, in seconds
712
+ """
713
+ if project_id is None:
714
+ project_id = self._client._get_cloud_project_id_path_param()
715
+ if region_id is None:
716
+ region_id = self._client._get_cloud_region_id_path_param()
717
+ if not router_id:
718
+ raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}")
719
+ return await self._post(
720
+ f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}/detach",
721
+ body=await async_maybe_transform(
722
+ {"subnet_id": subnet_id}, router_detach_subnet_params.RouterDetachSubnetParams
723
+ ),
724
+ options=make_request_options(
725
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
726
+ ),
727
+ cast_to=Router,
728
+ )
729
+
730
+ async def get(
731
+ self,
732
+ router_id: str,
733
+ *,
734
+ project_id: int | None = None,
735
+ region_id: int | None = None,
736
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
737
+ # The extra values given here take precedence over values defined on the client or passed to this method.
738
+ extra_headers: Headers | None = None,
739
+ extra_query: Query | None = None,
740
+ extra_body: Body | None = None,
741
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
742
+ ) -> Router:
743
+ """
744
+ Get specific router
745
+
746
+ Args:
747
+ extra_headers: Send extra headers
748
+
749
+ extra_query: Add additional query parameters to the request
750
+
751
+ extra_body: Add additional JSON properties to the request
752
+
753
+ timeout: Override the client-level default timeout for this request, in seconds
754
+ """
755
+ if project_id is None:
756
+ project_id = self._client._get_cloud_project_id_path_param()
757
+ if region_id is None:
758
+ region_id = self._client._get_cloud_region_id_path_param()
759
+ if not router_id:
760
+ raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}")
761
+ return await self._get(
762
+ f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}",
763
+ options=make_request_options(
764
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
765
+ ),
766
+ cast_to=Router,
767
+ )
768
+
769
+
770
+ class RoutersResourceWithRawResponse:
771
+ def __init__(self, routers: RoutersResource) -> None:
772
+ self._routers = routers
773
+
774
+ self.create = to_raw_response_wrapper(
775
+ routers.create,
776
+ )
777
+ self.update = to_raw_response_wrapper(
778
+ routers.update,
779
+ )
780
+ self.list = to_raw_response_wrapper(
781
+ routers.list,
782
+ )
783
+ self.delete = to_raw_response_wrapper(
784
+ routers.delete,
785
+ )
786
+ self.attach_subnet = to_raw_response_wrapper(
787
+ routers.attach_subnet,
788
+ )
789
+ self.detach_subnet = to_raw_response_wrapper(
790
+ routers.detach_subnet,
791
+ )
792
+ self.get = to_raw_response_wrapper(
793
+ routers.get,
794
+ )
795
+
796
+
797
+ class AsyncRoutersResourceWithRawResponse:
798
+ def __init__(self, routers: AsyncRoutersResource) -> None:
799
+ self._routers = routers
800
+
801
+ self.create = async_to_raw_response_wrapper(
802
+ routers.create,
803
+ )
804
+ self.update = async_to_raw_response_wrapper(
805
+ routers.update,
806
+ )
807
+ self.list = async_to_raw_response_wrapper(
808
+ routers.list,
809
+ )
810
+ self.delete = async_to_raw_response_wrapper(
811
+ routers.delete,
812
+ )
813
+ self.attach_subnet = async_to_raw_response_wrapper(
814
+ routers.attach_subnet,
815
+ )
816
+ self.detach_subnet = async_to_raw_response_wrapper(
817
+ routers.detach_subnet,
818
+ )
819
+ self.get = async_to_raw_response_wrapper(
820
+ routers.get,
821
+ )
822
+
823
+
824
+ class RoutersResourceWithStreamingResponse:
825
+ def __init__(self, routers: RoutersResource) -> None:
826
+ self._routers = routers
827
+
828
+ self.create = to_streamed_response_wrapper(
829
+ routers.create,
830
+ )
831
+ self.update = to_streamed_response_wrapper(
832
+ routers.update,
833
+ )
834
+ self.list = to_streamed_response_wrapper(
835
+ routers.list,
836
+ )
837
+ self.delete = to_streamed_response_wrapper(
838
+ routers.delete,
839
+ )
840
+ self.attach_subnet = to_streamed_response_wrapper(
841
+ routers.attach_subnet,
842
+ )
843
+ self.detach_subnet = to_streamed_response_wrapper(
844
+ routers.detach_subnet,
845
+ )
846
+ self.get = to_streamed_response_wrapper(
847
+ routers.get,
848
+ )
849
+
850
+
851
+ class AsyncRoutersResourceWithStreamingResponse:
852
+ def __init__(self, routers: AsyncRoutersResource) -> None:
853
+ self._routers = routers
854
+
855
+ self.create = async_to_streamed_response_wrapper(
856
+ routers.create,
857
+ )
858
+ self.update = async_to_streamed_response_wrapper(
859
+ routers.update,
860
+ )
861
+ self.list = async_to_streamed_response_wrapper(
862
+ routers.list,
863
+ )
864
+ self.delete = async_to_streamed_response_wrapper(
865
+ routers.delete,
866
+ )
867
+ self.attach_subnet = async_to_streamed_response_wrapper(
868
+ routers.attach_subnet,
869
+ )
870
+ self.detach_subnet = async_to_streamed_response_wrapper(
871
+ routers.detach_subnet,
872
+ )
873
+ self.get = async_to_streamed_response_wrapper(
874
+ routers.get,
875
+ )