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