gcore 0.1.0a1__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (420) hide show
  1. gcore/__init__.py +84 -0
  2. gcore/_base_client.py +1943 -0
  3. gcore/_client.py +484 -0
  4. gcore/_compat.py +219 -0
  5. gcore/_constants.py +16 -0
  6. gcore/_exceptions.py +108 -0
  7. gcore/_files.py +123 -0
  8. gcore/_models.py +803 -0
  9. gcore/_qs.py +150 -0
  10. gcore/_resource.py +43 -0
  11. gcore/_response.py +830 -0
  12. gcore/_streaming.py +333 -0
  13. gcore/_types.py +217 -0
  14. gcore/_utils/__init__.py +57 -0
  15. gcore/_utils/_logs.py +25 -0
  16. gcore/_utils/_proxy.py +62 -0
  17. gcore/_utils/_reflection.py +42 -0
  18. gcore/_utils/_streams.py +12 -0
  19. gcore/_utils/_sync.py +86 -0
  20. gcore/_utils/_transform.py +447 -0
  21. gcore/_utils/_typing.py +151 -0
  22. gcore/_utils/_utils.py +422 -0
  23. gcore/_version.py +4 -0
  24. gcore/lib/.keep +4 -0
  25. gcore/lib/polling.py +19 -0
  26. gcore/pagination.py +70 -0
  27. gcore/py.typed +0 -0
  28. gcore/resources/__init__.py +19 -0
  29. gcore/resources/cloud/__init__.py +327 -0
  30. gcore/resources/cloud/baremetal/__init__.py +61 -0
  31. gcore/resources/cloud/baremetal/baremetal.py +166 -0
  32. gcore/resources/cloud/baremetal/flavors.py +371 -0
  33. gcore/resources/cloud/baremetal/images.py +238 -0
  34. gcore/resources/cloud/baremetal/servers.py +808 -0
  35. gcore/resources/cloud/billing_reservations.py +362 -0
  36. gcore/resources/cloud/cloud.py +774 -0
  37. gcore/resources/cloud/file_shares/__init__.py +33 -0
  38. gcore/resources/cloud/file_shares/access_rules.py +434 -0
  39. gcore/resources/cloud/file_shares/file_shares.py +994 -0
  40. gcore/resources/cloud/floating_ips.py +765 -0
  41. gcore/resources/cloud/gpu_baremetal_clusters/__init__.py +75 -0
  42. gcore/resources/cloud/gpu_baremetal_clusters/flavors.py +211 -0
  43. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +1143 -0
  44. gcore/resources/cloud/gpu_baremetal_clusters/images.py +581 -0
  45. gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py +175 -0
  46. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +1098 -0
  47. gcore/resources/cloud/inference/__init__.py +89 -0
  48. gcore/resources/cloud/inference/deployments/__init__.py +33 -0
  49. gcore/resources/cloud/inference/deployments/deployments.py +1187 -0
  50. gcore/resources/cloud/inference/deployments/logs.py +235 -0
  51. gcore/resources/cloud/inference/flavors.py +280 -0
  52. gcore/resources/cloud/inference/inference.py +295 -0
  53. gcore/resources/cloud/inference/models.py +289 -0
  54. gcore/resources/cloud/inference/registry_credentials.py +649 -0
  55. gcore/resources/cloud/inference/secrets.py +629 -0
  56. gcore/resources/cloud/instances/__init__.py +75 -0
  57. gcore/resources/cloud/instances/flavors.py +449 -0
  58. gcore/resources/cloud/instances/images.py +987 -0
  59. gcore/resources/cloud/instances/instances.py +2349 -0
  60. gcore/resources/cloud/instances/interfaces.py +797 -0
  61. gcore/resources/cloud/instances/metrics.py +217 -0
  62. gcore/resources/cloud/ip_ranges.py +135 -0
  63. gcore/resources/cloud/load_balancers/__init__.py +103 -0
  64. gcore/resources/cloud/load_balancers/flavors.py +193 -0
  65. gcore/resources/cloud/load_balancers/l7_policies/__init__.py +33 -0
  66. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +738 -0
  67. gcore/resources/cloud/load_balancers/l7_policies/rules.py +722 -0
  68. gcore/resources/cloud/load_balancers/listeners.py +788 -0
  69. gcore/resources/cloud/load_balancers/load_balancers.py +1237 -0
  70. gcore/resources/cloud/load_balancers/metrics.py +205 -0
  71. gcore/resources/cloud/load_balancers/pools/__init__.py +47 -0
  72. gcore/resources/cloud/load_balancers/pools/health_monitors.py +352 -0
  73. gcore/resources/cloud/load_balancers/pools/members.py +353 -0
  74. gcore/resources/cloud/load_balancers/pools/pools.py +872 -0
  75. gcore/resources/cloud/load_balancers/statuses.py +260 -0
  76. gcore/resources/cloud/networks/__init__.py +47 -0
  77. gcore/resources/cloud/networks/networks.py +715 -0
  78. gcore/resources/cloud/networks/routers.py +875 -0
  79. gcore/resources/cloud/networks/subnets.py +865 -0
  80. gcore/resources/cloud/placement_groups.py +465 -0
  81. gcore/resources/cloud/projects.py +608 -0
  82. gcore/resources/cloud/quotas/__init__.py +33 -0
  83. gcore/resources/cloud/quotas/quotas.py +335 -0
  84. gcore/resources/cloud/quotas/requests.py +482 -0
  85. gcore/resources/cloud/regions.py +328 -0
  86. gcore/resources/cloud/registries/__init__.py +75 -0
  87. gcore/resources/cloud/registries/artifacts.py +277 -0
  88. gcore/resources/cloud/registries/registries.py +688 -0
  89. gcore/resources/cloud/registries/repositories.py +265 -0
  90. gcore/resources/cloud/registries/tags.py +190 -0
  91. gcore/resources/cloud/registries/users.py +701 -0
  92. gcore/resources/cloud/reserved_fixed_ips/__init__.py +33 -0
  93. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +965 -0
  94. gcore/resources/cloud/reserved_fixed_ips/vip.py +577 -0
  95. gcore/resources/cloud/secrets.py +797 -0
  96. gcore/resources/cloud/security_groups/__init__.py +33 -0
  97. gcore/resources/cloud/security_groups/rules.py +626 -0
  98. gcore/resources/cloud/security_groups/security_groups.py +863 -0
  99. gcore/resources/cloud/ssh_keys.py +635 -0
  100. gcore/resources/cloud/tasks.py +699 -0
  101. gcore/resources/cloud/users/__init__.py +33 -0
  102. gcore/resources/cloud/users/role_assignments.py +533 -0
  103. gcore/resources/cloud/users/users.py +102 -0
  104. gcore/resources/cloud/volumes.py +1710 -0
  105. gcore/types/__init__.py +3 -0
  106. gcore/types/cloud/__init__.py +199 -0
  107. gcore/types/cloud/allowed_address_pairs.py +15 -0
  108. gcore/types/cloud/aws_iam_data.py +13 -0
  109. gcore/types/cloud/aws_iam_data_param.py +15 -0
  110. gcore/types/cloud/baremetal/__init__.py +13 -0
  111. gcore/types/cloud/baremetal/baremetal_fixed_address.py +30 -0
  112. gcore/types/cloud/baremetal/baremetal_floating_address.py +15 -0
  113. gcore/types/cloud/baremetal/baremetal_server.py +178 -0
  114. gcore/types/cloud/baremetal/flavor_list_params.py +35 -0
  115. gcore/types/cloud/baremetal/flavor_list_suitable_params.py +22 -0
  116. gcore/types/cloud/baremetal/image_list_params.py +33 -0
  117. gcore/types/cloud/baremetal/server_create_params.py +370 -0
  118. gcore/types/cloud/baremetal/server_list_params.py +114 -0
  119. gcore/types/cloud/baremetal/server_rebuild_params.py +23 -0
  120. gcore/types/cloud/baremetal_flavor.py +58 -0
  121. gcore/types/cloud/baremetal_flavor_list.py +16 -0
  122. gcore/types/cloud/billing_reservation.py +153 -0
  123. gcore/types/cloud/billing_reservation_list_params.py +54 -0
  124. gcore/types/cloud/blackhole_port.py +66 -0
  125. gcore/types/cloud/capacity.py +13 -0
  126. gcore/types/cloud/console.py +18 -0
  127. gcore/types/cloud/container_probe.py +36 -0
  128. gcore/types/cloud/container_probe_config.py +16 -0
  129. gcore/types/cloud/container_probe_config_create_param.py +18 -0
  130. gcore/types/cloud/container_probe_create_param.py +38 -0
  131. gcore/types/cloud/container_probe_exec.py +12 -0
  132. gcore/types/cloud/container_probe_exec_create_param.py +13 -0
  133. gcore/types/cloud/container_probe_http_get.py +26 -0
  134. gcore/types/cloud/container_probe_http_get_create_param.py +25 -0
  135. gcore/types/cloud/container_probe_tcp_socket.py +10 -0
  136. gcore/types/cloud/container_probe_tcp_socket_create_param.py +12 -0
  137. gcore/types/cloud/container_scale.py +25 -0
  138. gcore/types/cloud/container_scale_trigger_rate.py +13 -0
  139. gcore/types/cloud/container_scale_trigger_sqs.py +33 -0
  140. gcore/types/cloud/container_scale_trigger_threshold.py +10 -0
  141. gcore/types/cloud/container_scale_triggers.py +36 -0
  142. gcore/types/cloud/ddos_profile.py +33 -0
  143. gcore/types/cloud/ddos_profile_field.py +31 -0
  144. gcore/types/cloud/ddos_profile_option_list.py +15 -0
  145. gcore/types/cloud/ddos_profile_status.py +13 -0
  146. gcore/types/cloud/ddos_profile_template.py +18 -0
  147. gcore/types/cloud/ddos_profile_template_field.py +23 -0
  148. gcore/types/cloud/deploy_status.py +13 -0
  149. gcore/types/cloud/file_share.py +111 -0
  150. gcore/types/cloud/file_share_create_params.py +104 -0
  151. gcore/types/cloud/file_share_list_params.py +24 -0
  152. gcore/types/cloud/file_share_resize_params.py +18 -0
  153. gcore/types/cloud/file_share_update_params.py +18 -0
  154. gcore/types/cloud/file_shares/__init__.py +7 -0
  155. gcore/types/cloud/file_shares/access_rule.py +21 -0
  156. gcore/types/cloud/file_shares/access_rule_create_params.py +21 -0
  157. gcore/types/cloud/file_shares/access_rule_list.py +16 -0
  158. gcore/types/cloud/fixed_address.py +38 -0
  159. gcore/types/cloud/fixed_address_short.py +24 -0
  160. gcore/types/cloud/flavor_hardware_description.py +27 -0
  161. gcore/types/cloud/floating_address.py +15 -0
  162. gcore/types/cloud/floating_ip.py +77 -0
  163. gcore/types/cloud/floating_ip_assign_params.py +20 -0
  164. gcore/types/cloud/floating_ip_create_params.py +40 -0
  165. gcore/types/cloud/floating_ip_detailed.py +222 -0
  166. gcore/types/cloud/floating_ip_list_params.py +35 -0
  167. gcore/types/cloud/floating_ip_status.py +7 -0
  168. gcore/types/cloud/gpu_baremetal_cluster.py +116 -0
  169. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +135 -0
  170. gcore/types/cloud/gpu_baremetal_cluster_delete_params.py +28 -0
  171. gcore/types/cloud/gpu_baremetal_cluster_list_params.py +19 -0
  172. gcore/types/cloud/gpu_baremetal_cluster_rebuild_params.py +26 -0
  173. gcore/types/cloud/gpu_baremetal_cluster_resize_params.py +16 -0
  174. gcore/types/cloud/gpu_baremetal_cluster_server.py +200 -0
  175. gcore/types/cloud/gpu_baremetal_cluster_server_list.py +16 -0
  176. gcore/types/cloud/gpu_baremetal_clusters/__init__.py +9 -0
  177. gcore/types/cloud/gpu_baremetal_clusters/flavor_list_params.py +21 -0
  178. gcore/types/cloud/gpu_baremetal_clusters/image_upload_params.py +58 -0
  179. gcore/types/cloud/gpu_baremetal_clusters/server_attach_interface_params.py +253 -0
  180. gcore/types/cloud/gpu_baremetal_clusters/server_delete_params.py +21 -0
  181. gcore/types/cloud/gpu_baremetal_clusters/server_detach_interface_params.py +19 -0
  182. gcore/types/cloud/gpu_baremetal_flavor.py +133 -0
  183. gcore/types/cloud/gpu_baremetal_flavor_list.py +16 -0
  184. gcore/types/cloud/gpu_image.py +70 -0
  185. gcore/types/cloud/gpu_image_list.py +16 -0
  186. gcore/types/cloud/health_monitor.py +48 -0
  187. gcore/types/cloud/health_monitor_status.py +22 -0
  188. gcore/types/cloud/http_method.py +7 -0
  189. gcore/types/cloud/image.py +100 -0
  190. gcore/types/cloud/image_list.py +16 -0
  191. gcore/types/cloud/inference/__init__.py +25 -0
  192. gcore/types/cloud/inference/container.py +26 -0
  193. gcore/types/cloud/inference/deployment_create_params.py +222 -0
  194. gcore/types/cloud/inference/deployment_list_params.py +21 -0
  195. gcore/types/cloud/inference/deployment_update_params.py +215 -0
  196. gcore/types/cloud/inference/deployments/__init__.py +5 -0
  197. gcore/types/cloud/inference/deployments/log_list_params.py +28 -0
  198. gcore/types/cloud/inference/flavor_list_params.py +18 -0
  199. gcore/types/cloud/inference/inference.py +95 -0
  200. gcore/types/cloud/inference/inference_apikey_secret.py +15 -0
  201. gcore/types/cloud/inference/inference_flavor.py +34 -0
  202. gcore/types/cloud/inference/inference_log.py +21 -0
  203. gcore/types/cloud/inference/inference_registry_credential.py +19 -0
  204. gcore/types/cloud/inference/inference_registry_credential_full.py +22 -0
  205. gcore/types/cloud/inference/inference_secret.py +17 -0
  206. gcore/types/cloud/inference/mlcatalog_model_card.py +65 -0
  207. gcore/types/cloud/inference/mlcatalog_order_by_choices.py +7 -0
  208. gcore/types/cloud/inference/model_list_params.py +23 -0
  209. gcore/types/cloud/inference/registry_credential_create_params.py +24 -0
  210. gcore/types/cloud/inference/registry_credential_list_params.py +21 -0
  211. gcore/types/cloud/inference/registry_credential_replace_params.py +21 -0
  212. gcore/types/cloud/inference/secret_create_params.py +23 -0
  213. gcore/types/cloud/inference/secret_list_params.py +21 -0
  214. gcore/types/cloud/inference/secret_replace_params.py +20 -0
  215. gcore/types/cloud/inference_probes.py +19 -0
  216. gcore/types/cloud/ingress_opts_out.py +16 -0
  217. gcore/types/cloud/ingress_opts_param.py +18 -0
  218. gcore/types/cloud/instance.py +296 -0
  219. gcore/types/cloud/instance_action_params.py +32 -0
  220. gcore/types/cloud/instance_add_to_placement_group_params.py +16 -0
  221. gcore/types/cloud/instance_assign_security_group_params.py +28 -0
  222. gcore/types/cloud/instance_create_params.py +622 -0
  223. gcore/types/cloud/instance_delete_params.py +33 -0
  224. gcore/types/cloud/instance_get_console_params.py +16 -0
  225. gcore/types/cloud/instance_interface.py +40 -0
  226. gcore/types/cloud/instance_isolation.py +12 -0
  227. gcore/types/cloud/instance_list.py +16 -0
  228. gcore/types/cloud/instance_list_params.py +146 -0
  229. gcore/types/cloud/instance_metrics_time_unit.py +7 -0
  230. gcore/types/cloud/instance_resize_params.py +16 -0
  231. gcore/types/cloud/instance_unassign_security_group_params.py +28 -0
  232. gcore/types/cloud/instance_update_params.py +18 -0
  233. gcore/types/cloud/instances/__init__.py +19 -0
  234. gcore/types/cloud/instances/flavor_list_for_resize_params.py +16 -0
  235. gcore/types/cloud/instances/flavor_list_params.py +25 -0
  236. gcore/types/cloud/instances/flavor_list_suitable_params.py +56 -0
  237. gcore/types/cloud/instances/image_create_from_volume_params.py +53 -0
  238. gcore/types/cloud/instances/image_get_params.py +16 -0
  239. gcore/types/cloud/instances/image_list_params.py +33 -0
  240. gcore/types/cloud/instances/image_update_params.py +43 -0
  241. gcore/types/cloud/instances/image_upload_params.py +62 -0
  242. gcore/types/cloud/instances/instance_flavor.py +49 -0
  243. gcore/types/cloud/instances/instance_flavor_list.py +16 -0
  244. gcore/types/cloud/instances/interface_attach_params.py +253 -0
  245. gcore/types/cloud/instances/interface_detach_params.py +19 -0
  246. gcore/types/cloud/instances/metric_list_params.py +23 -0
  247. gcore/types/cloud/instances/metrics.py +52 -0
  248. gcore/types/cloud/instances/metrics_list.py +16 -0
  249. gcore/types/cloud/interface_ip_family.py +7 -0
  250. gcore/types/cloud/ip_assignment.py +13 -0
  251. gcore/types/cloud/ip_ranges.py +12 -0
  252. gcore/types/cloud/ip_version.py +7 -0
  253. gcore/types/cloud/laas_index_retention_policy.py +12 -0
  254. gcore/types/cloud/laas_index_retention_policy_param.py +13 -0
  255. gcore/types/cloud/lb_algorithm.py +7 -0
  256. gcore/types/cloud/lb_health_monitor_type.py +7 -0
  257. gcore/types/cloud/lb_listener_protocol.py +7 -0
  258. gcore/types/cloud/lb_pool_protocol.py +7 -0
  259. gcore/types/cloud/lb_session_persistence_type.py +7 -0
  260. gcore/types/cloud/listener_status.py +27 -0
  261. gcore/types/cloud/load_balancer.py +144 -0
  262. gcore/types/cloud/load_balancer_create_params.py +327 -0
  263. gcore/types/cloud/load_balancer_failover_params.py +16 -0
  264. gcore/types/cloud/load_balancer_flavor_detail.py +40 -0
  265. gcore/types/cloud/load_balancer_flavor_list.py +16 -0
  266. gcore/types/cloud/load_balancer_get_params.py +19 -0
  267. gcore/types/cloud/load_balancer_instance_role.py +7 -0
  268. gcore/types/cloud/load_balancer_l7_policy.py +86 -0
  269. gcore/types/cloud/load_balancer_l7_policy_list.py +16 -0
  270. gcore/types/cloud/load_balancer_l7_rule.py +72 -0
  271. gcore/types/cloud/load_balancer_l7_rule_list.py +16 -0
  272. gcore/types/cloud/load_balancer_list_params.py +53 -0
  273. gcore/types/cloud/load_balancer_listener_detail.py +97 -0
  274. gcore/types/cloud/load_balancer_listener_list.py +16 -0
  275. gcore/types/cloud/load_balancer_member_connectivity.py +7 -0
  276. gcore/types/cloud/load_balancer_metrics.py +32 -0
  277. gcore/types/cloud/load_balancer_metrics_list.py +16 -0
  278. gcore/types/cloud/load_balancer_operating_status.py +7 -0
  279. gcore/types/cloud/load_balancer_pool.py +87 -0
  280. gcore/types/cloud/load_balancer_pool_list.py +16 -0
  281. gcore/types/cloud/load_balancer_resize_params.py +16 -0
  282. gcore/types/cloud/load_balancer_statistics.py +22 -0
  283. gcore/types/cloud/load_balancer_status.py +38 -0
  284. gcore/types/cloud/load_balancer_status_list.py +16 -0
  285. gcore/types/cloud/load_balancer_update_params.py +43 -0
  286. gcore/types/cloud/load_balancers/__init__.py +15 -0
  287. gcore/types/cloud/load_balancers/flavor_list_params.py +16 -0
  288. gcore/types/cloud/load_balancers/l7_policies/__init__.py +6 -0
  289. gcore/types/cloud/load_balancers/l7_policies/rule_create_params.py +50 -0
  290. gcore/types/cloud/load_balancers/l7_policies/rule_replace_params.py +43 -0
  291. gcore/types/cloud/load_balancers/l7_policy_create_params.py +54 -0
  292. gcore/types/cloud/load_balancers/l7_policy_replace_params.py +51 -0
  293. gcore/types/cloud/load_balancers/listener_create_params.py +72 -0
  294. gcore/types/cloud/load_balancers/listener_get_params.py +16 -0
  295. gcore/types/cloud/load_balancers/listener_list_params.py +19 -0
  296. gcore/types/cloud/load_balancers/listener_update_params.py +55 -0
  297. gcore/types/cloud/load_balancers/metric_list_params.py +21 -0
  298. gcore/types/cloud/load_balancers/pool_create_params.py +141 -0
  299. gcore/types/cloud/load_balancers/pool_list_params.py +25 -0
  300. gcore/types/cloud/load_balancers/pool_update_params.py +139 -0
  301. gcore/types/cloud/load_balancers/pools/__init__.py +6 -0
  302. gcore/types/cloud/load_balancers/pools/health_monitor_create_params.py +49 -0
  303. gcore/types/cloud/load_balancers/pools/member_add_params.py +44 -0
  304. gcore/types/cloud/logging.py +22 -0
  305. gcore/types/cloud/member.py +47 -0
  306. gcore/types/cloud/member_status.py +24 -0
  307. gcore/types/cloud/network.py +79 -0
  308. gcore/types/cloud/network_create_params.py +34 -0
  309. gcore/types/cloud/network_details.py +79 -0
  310. gcore/types/cloud/network_interface.py +78 -0
  311. gcore/types/cloud/network_interface_list.py +16 -0
  312. gcore/types/cloud/network_list_params.py +36 -0
  313. gcore/types/cloud/network_update_params.py +16 -0
  314. gcore/types/cloud/networks/__init__.py +14 -0
  315. gcore/types/cloud/networks/router.py +83 -0
  316. gcore/types/cloud/networks/router_attach_subnet_params.py +24 -0
  317. gcore/types/cloud/networks/router_create_params.py +75 -0
  318. gcore/types/cloud/networks/router_detach_subnet_params.py +16 -0
  319. gcore/types/cloud/networks/router_list.py +16 -0
  320. gcore/types/cloud/networks/router_list_params.py +19 -0
  321. gcore/types/cloud/networks/router_update_params.py +45 -0
  322. gcore/types/cloud/networks/subnet_create_params.py +82 -0
  323. gcore/types/cloud/networks/subnet_list_params.py +58 -0
  324. gcore/types/cloud/networks/subnet_update_params.py +47 -0
  325. gcore/types/cloud/placement_group.py +41 -0
  326. gcore/types/cloud/placement_group_create_params.py +19 -0
  327. gcore/types/cloud/placement_group_list.py +16 -0
  328. gcore/types/cloud/pool_status.py +31 -0
  329. gcore/types/cloud/project.py +47 -0
  330. gcore/types/cloud/project_create_params.py +22 -0
  331. gcore/types/cloud/project_list_params.py +27 -0
  332. gcore/types/cloud/project_replace_params.py +18 -0
  333. gcore/types/cloud/provisioning_status.py +9 -0
  334. gcore/types/cloud/quota_get_all_response.py +340 -0
  335. gcore/types/cloud/quota_get_by_region_response.py +288 -0
  336. gcore/types/cloud/quota_get_global_response.py +51 -0
  337. gcore/types/cloud/quotas/__init__.py +8 -0
  338. gcore/types/cloud/quotas/request_create_params.py +193 -0
  339. gcore/types/cloud/quotas/request_get_response.py +205 -0
  340. gcore/types/cloud/quotas/request_list_params.py +22 -0
  341. gcore/types/cloud/quotas/request_list_response.py +205 -0
  342. gcore/types/cloud/region.py +101 -0
  343. gcore/types/cloud/region_capacity.py +16 -0
  344. gcore/types/cloud/region_capacity_list.py +16 -0
  345. gcore/types/cloud/region_get_params.py +18 -0
  346. gcore/types/cloud/region_list_params.py +31 -0
  347. gcore/types/cloud/registries/__init__.py +14 -0
  348. gcore/types/cloud/registries/registry_artifact.py +35 -0
  349. gcore/types/cloud/registries/registry_artifact_list.py +16 -0
  350. gcore/types/cloud/registries/registry_repository.py +30 -0
  351. gcore/types/cloud/registries/registry_repository_list.py +16 -0
  352. gcore/types/cloud/registries/registry_user.py +28 -0
  353. gcore/types/cloud/registries/registry_user_created.py +31 -0
  354. gcore/types/cloud/registries/registry_user_list.py +16 -0
  355. gcore/types/cloud/registries/user_create_multiple_params.py +36 -0
  356. gcore/types/cloud/registries/user_create_params.py +30 -0
  357. gcore/types/cloud/registries/user_update_params.py +21 -0
  358. gcore/types/cloud/registry.py +33 -0
  359. gcore/types/cloud/registry_create_params.py +24 -0
  360. gcore/types/cloud/registry_list.py +16 -0
  361. gcore/types/cloud/registry_resize_params.py +16 -0
  362. gcore/types/cloud/registry_tag.py +27 -0
  363. gcore/types/cloud/reserved_fixed_ip.py +98 -0
  364. gcore/types/cloud/reserved_fixed_ip_create_params.py +107 -0
  365. gcore/types/cloud/reserved_fixed_ip_list_params.py +47 -0
  366. gcore/types/cloud/reserved_fixed_ips/__init__.py +12 -0
  367. gcore/types/cloud/reserved_fixed_ips/candidate_port.py +26 -0
  368. gcore/types/cloud/reserved_fixed_ips/candidate_port_list.py +16 -0
  369. gcore/types/cloud/reserved_fixed_ips/connected_port.py +26 -0
  370. gcore/types/cloud/reserved_fixed_ips/connected_port_list.py +16 -0
  371. gcore/types/cloud/reserved_fixed_ips/ip_with_subnet.py +17 -0
  372. gcore/types/cloud/reserved_fixed_ips/vip_replace_connected_ports_params.py +17 -0
  373. gcore/types/cloud/reserved_fixed_ips/vip_toggle_params.py +16 -0
  374. gcore/types/cloud/reserved_fixed_ips/vip_update_connected_ports_params.py +17 -0
  375. gcore/types/cloud/route.py +16 -0
  376. gcore/types/cloud/secret.py +64 -0
  377. gcore/types/cloud/secret_create_params.py +66 -0
  378. gcore/types/cloud/secret_list_response.py +16 -0
  379. gcore/types/cloud/secret_upload_tls_certificate_params.py +39 -0
  380. gcore/types/cloud/security_group.py +45 -0
  381. gcore/types/cloud/security_group_copy_params.py +16 -0
  382. gcore/types/cloud/security_group_create_params.py +94 -0
  383. gcore/types/cloud/security_group_list_params.py +30 -0
  384. gcore/types/cloud/security_group_rule.py +83 -0
  385. gcore/types/cloud/security_group_update_params.py +83 -0
  386. gcore/types/cloud/security_groups/__init__.py +6 -0
  387. gcore/types/cloud/security_groups/rule_create_params.py +65 -0
  388. gcore/types/cloud/security_groups/rule_replace_params.py +72 -0
  389. gcore/types/cloud/session_persistence.py +22 -0
  390. gcore/types/cloud/ssh_key.py +39 -0
  391. gcore/types/cloud/ssh_key_create_params.py +31 -0
  392. gcore/types/cloud/ssh_key_created.py +53 -0
  393. gcore/types/cloud/ssh_key_list_params.py +21 -0
  394. gcore/types/cloud/ssh_key_update_params.py +15 -0
  395. gcore/types/cloud/subnet.py +87 -0
  396. gcore/types/cloud/tag.py +16 -0
  397. gcore/types/cloud/tag_update_map_param.py +10 -0
  398. gcore/types/cloud/task.py +191 -0
  399. gcore/types/cloud/task_acknowledge_all_params.py +16 -0
  400. gcore/types/cloud/task_id_list.py +12 -0
  401. gcore/types/cloud/task_list_params.py +104 -0
  402. gcore/types/cloud/users/__init__.py +9 -0
  403. gcore/types/cloud/users/role_assignment.py +33 -0
  404. gcore/types/cloud/users/role_assignment_create_params.py +22 -0
  405. gcore/types/cloud/users/role_assignment_list_params.py +25 -0
  406. gcore/types/cloud/users/role_assignment_update_delete.py +10 -0
  407. gcore/types/cloud/users/role_assignment_update_params.py +22 -0
  408. gcore/types/cloud/volume.py +141 -0
  409. gcore/types/cloud/volume_attach_to_instance_params.py +21 -0
  410. gcore/types/cloud/volume_change_type_params.py +18 -0
  411. gcore/types/cloud/volume_create_params.py +176 -0
  412. gcore/types/cloud/volume_delete_params.py +18 -0
  413. gcore/types/cloud/volume_detach_from_instance_params.py +18 -0
  414. gcore/types/cloud/volume_list_params.py +56 -0
  415. gcore/types/cloud/volume_resize_params.py +18 -0
  416. gcore/types/cloud/volume_update_params.py +18 -0
  417. gcore-0.1.0a1.dist-info/METADATA +485 -0
  418. gcore-0.1.0a1.dist-info/RECORD +420 -0
  419. gcore-0.1.0a1.dist-info/WHEEL +4 -0
  420. gcore-0.1.0a1.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,722 @@
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
6
+ from typing_extensions import Literal
7
+
8
+ import httpx
9
+
10
+ from ....._types import NOT_GIVEN, Body, Query, Headers, NotGiven
11
+ from ....._utils import maybe_transform, async_maybe_transform
12
+ from ....._compat import cached_property
13
+ from ....._resource import SyncAPIResource, AsyncAPIResource
14
+ from ....._response import (
15
+ to_raw_response_wrapper,
16
+ to_streamed_response_wrapper,
17
+ async_to_raw_response_wrapper,
18
+ async_to_streamed_response_wrapper,
19
+ )
20
+ from ....._base_client import make_request_options
21
+ from .....types.cloud.task_id_list import TaskIDList
22
+ from .....types.cloud.load_balancer_l7_rule import LoadBalancerL7Rule
23
+ from .....types.cloud.load_balancer_l7_rule_list import LoadBalancerL7RuleList
24
+ from .....types.cloud.load_balancers.l7_policies import rule_create_params, rule_replace_params
25
+
26
+ __all__ = ["RulesResource", "AsyncRulesResource"]
27
+
28
+
29
+ class RulesResource(SyncAPIResource):
30
+ @cached_property
31
+ def with_raw_response(self) -> RulesResourceWithRawResponse:
32
+ """
33
+ This property can be used as a prefix for any HTTP method call to return
34
+ the raw response object instead of the parsed content.
35
+
36
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
37
+ """
38
+ return RulesResourceWithRawResponse(self)
39
+
40
+ @cached_property
41
+ def with_streaming_response(self) -> RulesResourceWithStreamingResponse:
42
+ """
43
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
44
+
45
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
46
+ """
47
+ return RulesResourceWithStreamingResponse(self)
48
+
49
+ def create(
50
+ self,
51
+ l7policy_id: str,
52
+ *,
53
+ project_id: int | None = None,
54
+ region_id: int | None = None,
55
+ compare_type: Literal["CONTAINS", "ENDS_WITH", "EQUAL_TO", "REGEX", "STARTS_WITH"],
56
+ type: Literal[
57
+ "COOKIE",
58
+ "FILE_TYPE",
59
+ "HEADER",
60
+ "HOST_NAME",
61
+ "PATH",
62
+ "SSL_CONN_HAS_CERT",
63
+ "SSL_DN_FIELD",
64
+ "SSL_VERIFY_RESULT",
65
+ ],
66
+ value: str,
67
+ invert: bool | NotGiven = NOT_GIVEN,
68
+ key: str | NotGiven = NOT_GIVEN,
69
+ tags: List[str] | NotGiven = NOT_GIVEN,
70
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
71
+ # The extra values given here take precedence over values defined on the client or passed to this method.
72
+ extra_headers: Headers | None = None,
73
+ extra_query: Query | None = None,
74
+ extra_body: Body | None = None,
75
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
76
+ ) -> TaskIDList:
77
+ """
78
+ Create load balancer L7 rule
79
+
80
+ Args:
81
+ compare_type: The comparison type for the L7 rule
82
+
83
+ type: The L7 rule type
84
+
85
+ value: The value to use for the comparison. For example, the file type to compare
86
+
87
+ invert: When true the logic of the rule is inverted. For example, with invert true,
88
+ 'equal to' would become 'not equal to'. Default is false.
89
+
90
+ key: The key to use for the comparison. For example, the name of the cookie to
91
+ evaluate.
92
+
93
+ tags: A list of simple strings assigned to the l7 rule
94
+
95
+ extra_headers: Send extra headers
96
+
97
+ extra_query: Add additional query parameters to the request
98
+
99
+ extra_body: Add additional JSON properties to the request
100
+
101
+ timeout: Override the client-level default timeout for this request, in seconds
102
+ """
103
+ if project_id is None:
104
+ project_id = self._client._get_cloud_project_id_path_param()
105
+ if region_id is None:
106
+ region_id = self._client._get_cloud_region_id_path_param()
107
+ if not l7policy_id:
108
+ raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}")
109
+ return self._post(
110
+ f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules",
111
+ body=maybe_transform(
112
+ {
113
+ "compare_type": compare_type,
114
+ "type": type,
115
+ "value": value,
116
+ "invert": invert,
117
+ "key": key,
118
+ "tags": tags,
119
+ },
120
+ rule_create_params.RuleCreateParams,
121
+ ),
122
+ options=make_request_options(
123
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
124
+ ),
125
+ cast_to=TaskIDList,
126
+ )
127
+
128
+ def list(
129
+ self,
130
+ l7policy_id: str,
131
+ *,
132
+ project_id: int | None = None,
133
+ region_id: int | None = None,
134
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
135
+ # The extra values given here take precedence over values defined on the client or passed to this method.
136
+ extra_headers: Headers | None = None,
137
+ extra_query: Query | None = None,
138
+ extra_body: Body | None = None,
139
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
140
+ ) -> LoadBalancerL7RuleList:
141
+ """
142
+ List load balancer L7 policy rules
143
+
144
+ Args:
145
+ extra_headers: Send extra headers
146
+
147
+ extra_query: Add additional query parameters to the request
148
+
149
+ extra_body: Add additional JSON properties to the request
150
+
151
+ timeout: Override the client-level default timeout for this request, in seconds
152
+ """
153
+ if project_id is None:
154
+ project_id = self._client._get_cloud_project_id_path_param()
155
+ if region_id is None:
156
+ region_id = self._client._get_cloud_region_id_path_param()
157
+ if not l7policy_id:
158
+ raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}")
159
+ return self._get(
160
+ f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules",
161
+ options=make_request_options(
162
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
163
+ ),
164
+ cast_to=LoadBalancerL7RuleList,
165
+ )
166
+
167
+ def delete(
168
+ self,
169
+ l7rule_id: str,
170
+ *,
171
+ project_id: int | None = None,
172
+ region_id: int | None = None,
173
+ l7policy_id: str,
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
+ ) -> TaskIDList:
181
+ """
182
+ Delete load balancer L7 rule
183
+
184
+ Args:
185
+ extra_headers: Send extra headers
186
+
187
+ extra_query: Add additional query parameters to the request
188
+
189
+ extra_body: Add additional JSON properties to the request
190
+
191
+ timeout: Override the client-level default timeout for this request, in seconds
192
+ """
193
+ if project_id is None:
194
+ project_id = self._client._get_cloud_project_id_path_param()
195
+ if region_id is None:
196
+ region_id = self._client._get_cloud_region_id_path_param()
197
+ if not l7policy_id:
198
+ raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}")
199
+ if not l7rule_id:
200
+ raise ValueError(f"Expected a non-empty value for `l7rule_id` but received {l7rule_id!r}")
201
+ return self._delete(
202
+ f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}",
203
+ options=make_request_options(
204
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
205
+ ),
206
+ cast_to=TaskIDList,
207
+ )
208
+
209
+ def get(
210
+ self,
211
+ l7rule_id: str,
212
+ *,
213
+ project_id: int | None = None,
214
+ region_id: int | None = None,
215
+ l7policy_id: str,
216
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
217
+ # The extra values given here take precedence over values defined on the client or passed to this method.
218
+ extra_headers: Headers | None = None,
219
+ extra_query: Query | None = None,
220
+ extra_body: Body | None = None,
221
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
222
+ ) -> LoadBalancerL7Rule:
223
+ """
224
+ Get load balancer L7 rule
225
+
226
+ Args:
227
+ extra_headers: Send extra headers
228
+
229
+ extra_query: Add additional query parameters to the request
230
+
231
+ extra_body: Add additional JSON properties to the request
232
+
233
+ timeout: Override the client-level default timeout for this request, in seconds
234
+ """
235
+ if project_id is None:
236
+ project_id = self._client._get_cloud_project_id_path_param()
237
+ if region_id is None:
238
+ region_id = self._client._get_cloud_region_id_path_param()
239
+ if not l7policy_id:
240
+ raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}")
241
+ if not l7rule_id:
242
+ raise ValueError(f"Expected a non-empty value for `l7rule_id` but received {l7rule_id!r}")
243
+ return self._get(
244
+ f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}",
245
+ options=make_request_options(
246
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
247
+ ),
248
+ cast_to=LoadBalancerL7Rule,
249
+ )
250
+
251
+ def replace(
252
+ self,
253
+ l7rule_id: str,
254
+ *,
255
+ project_id: int | None = None,
256
+ region_id: int | None = None,
257
+ l7policy_id: str,
258
+ compare_type: Literal["CONTAINS", "ENDS_WITH", "EQUAL_TO", "REGEX", "STARTS_WITH"] | NotGiven = NOT_GIVEN,
259
+ invert: bool | NotGiven = NOT_GIVEN,
260
+ key: str | NotGiven = NOT_GIVEN,
261
+ tags: List[str] | NotGiven = NOT_GIVEN,
262
+ type: Literal[
263
+ "COOKIE",
264
+ "FILE_TYPE",
265
+ "HEADER",
266
+ "HOST_NAME",
267
+ "PATH",
268
+ "SSL_CONN_HAS_CERT",
269
+ "SSL_DN_FIELD",
270
+ "SSL_VERIFY_RESULT",
271
+ ]
272
+ | NotGiven = NOT_GIVEN,
273
+ value: str | NotGiven = NOT_GIVEN,
274
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
275
+ # The extra values given here take precedence over values defined on the client or passed to this method.
276
+ extra_headers: Headers | None = None,
277
+ extra_query: Query | None = None,
278
+ extra_body: Body | None = None,
279
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
280
+ ) -> TaskIDList:
281
+ """
282
+ Replace load balancer L7 rule properties
283
+
284
+ Args:
285
+ compare_type: The comparison type for the L7 rule
286
+
287
+ invert: When true the logic of the rule is inverted. For example, with invert true,
288
+ 'equal to' would become 'not equal to'. Default is false.
289
+
290
+ key: The key to use for the comparison. For example, the name of the cookie to
291
+ evaluate.
292
+
293
+ tags: A list of simple strings assigned to the l7 rule
294
+
295
+ type: The L7 rule type
296
+
297
+ value: The value to use for the comparison. For example, the file type to compare
298
+
299
+ extra_headers: Send extra headers
300
+
301
+ extra_query: Add additional query parameters to the request
302
+
303
+ extra_body: Add additional JSON properties to the request
304
+
305
+ timeout: Override the client-level default timeout for this request, in seconds
306
+ """
307
+ if project_id is None:
308
+ project_id = self._client._get_cloud_project_id_path_param()
309
+ if region_id is None:
310
+ region_id = self._client._get_cloud_region_id_path_param()
311
+ if not l7policy_id:
312
+ raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}")
313
+ if not l7rule_id:
314
+ raise ValueError(f"Expected a non-empty value for `l7rule_id` but received {l7rule_id!r}")
315
+ return self._put(
316
+ f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}",
317
+ body=maybe_transform(
318
+ {
319
+ "compare_type": compare_type,
320
+ "invert": invert,
321
+ "key": key,
322
+ "tags": tags,
323
+ "type": type,
324
+ "value": value,
325
+ },
326
+ rule_replace_params.RuleReplaceParams,
327
+ ),
328
+ options=make_request_options(
329
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
330
+ ),
331
+ cast_to=TaskIDList,
332
+ )
333
+
334
+
335
+ class AsyncRulesResource(AsyncAPIResource):
336
+ @cached_property
337
+ def with_raw_response(self) -> AsyncRulesResourceWithRawResponse:
338
+ """
339
+ This property can be used as a prefix for any HTTP method call to return
340
+ the raw response object instead of the parsed content.
341
+
342
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
343
+ """
344
+ return AsyncRulesResourceWithRawResponse(self)
345
+
346
+ @cached_property
347
+ def with_streaming_response(self) -> AsyncRulesResourceWithStreamingResponse:
348
+ """
349
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
350
+
351
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
352
+ """
353
+ return AsyncRulesResourceWithStreamingResponse(self)
354
+
355
+ async def create(
356
+ self,
357
+ l7policy_id: str,
358
+ *,
359
+ project_id: int | None = None,
360
+ region_id: int | None = None,
361
+ compare_type: Literal["CONTAINS", "ENDS_WITH", "EQUAL_TO", "REGEX", "STARTS_WITH"],
362
+ type: Literal[
363
+ "COOKIE",
364
+ "FILE_TYPE",
365
+ "HEADER",
366
+ "HOST_NAME",
367
+ "PATH",
368
+ "SSL_CONN_HAS_CERT",
369
+ "SSL_DN_FIELD",
370
+ "SSL_VERIFY_RESULT",
371
+ ],
372
+ value: str,
373
+ invert: bool | NotGiven = NOT_GIVEN,
374
+ key: str | NotGiven = NOT_GIVEN,
375
+ tags: List[str] | NotGiven = NOT_GIVEN,
376
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
377
+ # The extra values given here take precedence over values defined on the client or passed to this method.
378
+ extra_headers: Headers | None = None,
379
+ extra_query: Query | None = None,
380
+ extra_body: Body | None = None,
381
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
382
+ ) -> TaskIDList:
383
+ """
384
+ Create load balancer L7 rule
385
+
386
+ Args:
387
+ compare_type: The comparison type for the L7 rule
388
+
389
+ type: The L7 rule type
390
+
391
+ value: The value to use for the comparison. For example, the file type to compare
392
+
393
+ invert: When true the logic of the rule is inverted. For example, with invert true,
394
+ 'equal to' would become 'not equal to'. Default is false.
395
+
396
+ key: The key to use for the comparison. For example, the name of the cookie to
397
+ evaluate.
398
+
399
+ tags: A list of simple strings assigned to the l7 rule
400
+
401
+ extra_headers: Send extra headers
402
+
403
+ extra_query: Add additional query parameters to the request
404
+
405
+ extra_body: Add additional JSON properties to the request
406
+
407
+ timeout: Override the client-level default timeout for this request, in seconds
408
+ """
409
+ if project_id is None:
410
+ project_id = self._client._get_cloud_project_id_path_param()
411
+ if region_id is None:
412
+ region_id = self._client._get_cloud_region_id_path_param()
413
+ if not l7policy_id:
414
+ raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}")
415
+ return await self._post(
416
+ f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules",
417
+ body=await async_maybe_transform(
418
+ {
419
+ "compare_type": compare_type,
420
+ "type": type,
421
+ "value": value,
422
+ "invert": invert,
423
+ "key": key,
424
+ "tags": tags,
425
+ },
426
+ rule_create_params.RuleCreateParams,
427
+ ),
428
+ options=make_request_options(
429
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
430
+ ),
431
+ cast_to=TaskIDList,
432
+ )
433
+
434
+ async def list(
435
+ self,
436
+ l7policy_id: str,
437
+ *,
438
+ project_id: int | None = None,
439
+ region_id: int | None = None,
440
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
441
+ # The extra values given here take precedence over values defined on the client or passed to this method.
442
+ extra_headers: Headers | None = None,
443
+ extra_query: Query | None = None,
444
+ extra_body: Body | None = None,
445
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
446
+ ) -> LoadBalancerL7RuleList:
447
+ """
448
+ List load balancer L7 policy rules
449
+
450
+ Args:
451
+ extra_headers: Send extra headers
452
+
453
+ extra_query: Add additional query parameters to the request
454
+
455
+ extra_body: Add additional JSON properties to the request
456
+
457
+ timeout: Override the client-level default timeout for this request, in seconds
458
+ """
459
+ if project_id is None:
460
+ project_id = self._client._get_cloud_project_id_path_param()
461
+ if region_id is None:
462
+ region_id = self._client._get_cloud_region_id_path_param()
463
+ if not l7policy_id:
464
+ raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}")
465
+ return await self._get(
466
+ f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules",
467
+ options=make_request_options(
468
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
469
+ ),
470
+ cast_to=LoadBalancerL7RuleList,
471
+ )
472
+
473
+ async def delete(
474
+ self,
475
+ l7rule_id: str,
476
+ *,
477
+ project_id: int | None = None,
478
+ region_id: int | None = None,
479
+ l7policy_id: str,
480
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
481
+ # The extra values given here take precedence over values defined on the client or passed to this method.
482
+ extra_headers: Headers | None = None,
483
+ extra_query: Query | None = None,
484
+ extra_body: Body | None = None,
485
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
486
+ ) -> TaskIDList:
487
+ """
488
+ Delete load balancer L7 rule
489
+
490
+ Args:
491
+ extra_headers: Send extra headers
492
+
493
+ extra_query: Add additional query parameters to the request
494
+
495
+ extra_body: Add additional JSON properties to the request
496
+
497
+ timeout: Override the client-level default timeout for this request, in seconds
498
+ """
499
+ if project_id is None:
500
+ project_id = self._client._get_cloud_project_id_path_param()
501
+ if region_id is None:
502
+ region_id = self._client._get_cloud_region_id_path_param()
503
+ if not l7policy_id:
504
+ raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}")
505
+ if not l7rule_id:
506
+ raise ValueError(f"Expected a non-empty value for `l7rule_id` but received {l7rule_id!r}")
507
+ return await self._delete(
508
+ f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}",
509
+ options=make_request_options(
510
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
511
+ ),
512
+ cast_to=TaskIDList,
513
+ )
514
+
515
+ async def get(
516
+ self,
517
+ l7rule_id: str,
518
+ *,
519
+ project_id: int | None = None,
520
+ region_id: int | None = None,
521
+ l7policy_id: str,
522
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
523
+ # The extra values given here take precedence over values defined on the client or passed to this method.
524
+ extra_headers: Headers | None = None,
525
+ extra_query: Query | None = None,
526
+ extra_body: Body | None = None,
527
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
528
+ ) -> LoadBalancerL7Rule:
529
+ """
530
+ Get load balancer L7 rule
531
+
532
+ Args:
533
+ extra_headers: Send extra headers
534
+
535
+ extra_query: Add additional query parameters to the request
536
+
537
+ extra_body: Add additional JSON properties to the request
538
+
539
+ timeout: Override the client-level default timeout for this request, in seconds
540
+ """
541
+ if project_id is None:
542
+ project_id = self._client._get_cloud_project_id_path_param()
543
+ if region_id is None:
544
+ region_id = self._client._get_cloud_region_id_path_param()
545
+ if not l7policy_id:
546
+ raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}")
547
+ if not l7rule_id:
548
+ raise ValueError(f"Expected a non-empty value for `l7rule_id` but received {l7rule_id!r}")
549
+ return await self._get(
550
+ f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}",
551
+ options=make_request_options(
552
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
553
+ ),
554
+ cast_to=LoadBalancerL7Rule,
555
+ )
556
+
557
+ async def replace(
558
+ self,
559
+ l7rule_id: str,
560
+ *,
561
+ project_id: int | None = None,
562
+ region_id: int | None = None,
563
+ l7policy_id: str,
564
+ compare_type: Literal["CONTAINS", "ENDS_WITH", "EQUAL_TO", "REGEX", "STARTS_WITH"] | NotGiven = NOT_GIVEN,
565
+ invert: bool | NotGiven = NOT_GIVEN,
566
+ key: str | NotGiven = NOT_GIVEN,
567
+ tags: List[str] | NotGiven = NOT_GIVEN,
568
+ type: Literal[
569
+ "COOKIE",
570
+ "FILE_TYPE",
571
+ "HEADER",
572
+ "HOST_NAME",
573
+ "PATH",
574
+ "SSL_CONN_HAS_CERT",
575
+ "SSL_DN_FIELD",
576
+ "SSL_VERIFY_RESULT",
577
+ ]
578
+ | NotGiven = NOT_GIVEN,
579
+ value: str | NotGiven = NOT_GIVEN,
580
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
581
+ # The extra values given here take precedence over values defined on the client or passed to this method.
582
+ extra_headers: Headers | None = None,
583
+ extra_query: Query | None = None,
584
+ extra_body: Body | None = None,
585
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
586
+ ) -> TaskIDList:
587
+ """
588
+ Replace load balancer L7 rule properties
589
+
590
+ Args:
591
+ compare_type: The comparison type for the L7 rule
592
+
593
+ invert: When true the logic of the rule is inverted. For example, with invert true,
594
+ 'equal to' would become 'not equal to'. Default is false.
595
+
596
+ key: The key to use for the comparison. For example, the name of the cookie to
597
+ evaluate.
598
+
599
+ tags: A list of simple strings assigned to the l7 rule
600
+
601
+ type: The L7 rule type
602
+
603
+ value: The value to use for the comparison. For example, the file type to compare
604
+
605
+ extra_headers: Send extra headers
606
+
607
+ extra_query: Add additional query parameters to the request
608
+
609
+ extra_body: Add additional JSON properties to the request
610
+
611
+ timeout: Override the client-level default timeout for this request, in seconds
612
+ """
613
+ if project_id is None:
614
+ project_id = self._client._get_cloud_project_id_path_param()
615
+ if region_id is None:
616
+ region_id = self._client._get_cloud_region_id_path_param()
617
+ if not l7policy_id:
618
+ raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}")
619
+ if not l7rule_id:
620
+ raise ValueError(f"Expected a non-empty value for `l7rule_id` but received {l7rule_id!r}")
621
+ return await self._put(
622
+ f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}",
623
+ body=await async_maybe_transform(
624
+ {
625
+ "compare_type": compare_type,
626
+ "invert": invert,
627
+ "key": key,
628
+ "tags": tags,
629
+ "type": type,
630
+ "value": value,
631
+ },
632
+ rule_replace_params.RuleReplaceParams,
633
+ ),
634
+ options=make_request_options(
635
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
636
+ ),
637
+ cast_to=TaskIDList,
638
+ )
639
+
640
+
641
+ class RulesResourceWithRawResponse:
642
+ def __init__(self, rules: RulesResource) -> None:
643
+ self._rules = rules
644
+
645
+ self.create = to_raw_response_wrapper(
646
+ rules.create,
647
+ )
648
+ self.list = to_raw_response_wrapper(
649
+ rules.list,
650
+ )
651
+ self.delete = to_raw_response_wrapper(
652
+ rules.delete,
653
+ )
654
+ self.get = to_raw_response_wrapper(
655
+ rules.get,
656
+ )
657
+ self.replace = to_raw_response_wrapper(
658
+ rules.replace,
659
+ )
660
+
661
+
662
+ class AsyncRulesResourceWithRawResponse:
663
+ def __init__(self, rules: AsyncRulesResource) -> None:
664
+ self._rules = rules
665
+
666
+ self.create = async_to_raw_response_wrapper(
667
+ rules.create,
668
+ )
669
+ self.list = async_to_raw_response_wrapper(
670
+ rules.list,
671
+ )
672
+ self.delete = async_to_raw_response_wrapper(
673
+ rules.delete,
674
+ )
675
+ self.get = async_to_raw_response_wrapper(
676
+ rules.get,
677
+ )
678
+ self.replace = async_to_raw_response_wrapper(
679
+ rules.replace,
680
+ )
681
+
682
+
683
+ class RulesResourceWithStreamingResponse:
684
+ def __init__(self, rules: RulesResource) -> None:
685
+ self._rules = rules
686
+
687
+ self.create = to_streamed_response_wrapper(
688
+ rules.create,
689
+ )
690
+ self.list = to_streamed_response_wrapper(
691
+ rules.list,
692
+ )
693
+ self.delete = to_streamed_response_wrapper(
694
+ rules.delete,
695
+ )
696
+ self.get = to_streamed_response_wrapper(
697
+ rules.get,
698
+ )
699
+ self.replace = to_streamed_response_wrapper(
700
+ rules.replace,
701
+ )
702
+
703
+
704
+ class AsyncRulesResourceWithStreamingResponse:
705
+ def __init__(self, rules: AsyncRulesResource) -> None:
706
+ self._rules = rules
707
+
708
+ self.create = async_to_streamed_response_wrapper(
709
+ rules.create,
710
+ )
711
+ self.list = async_to_streamed_response_wrapper(
712
+ rules.list,
713
+ )
714
+ self.delete = async_to_streamed_response_wrapper(
715
+ rules.delete,
716
+ )
717
+ self.get = async_to_streamed_response_wrapper(
718
+ rules.get,
719
+ )
720
+ self.replace = async_to_streamed_response_wrapper(
721
+ rules.replace,
722
+ )