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,994 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Iterable
6
+ from typing_extensions import Literal, overload
7
+
8
+ import httpx
9
+
10
+ from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven
11
+ from ...._utils import required_args, 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 .access_rules import (
21
+ AccessRulesResource,
22
+ AsyncAccessRulesResource,
23
+ AccessRulesResourceWithRawResponse,
24
+ AsyncAccessRulesResourceWithRawResponse,
25
+ AccessRulesResourceWithStreamingResponse,
26
+ AsyncAccessRulesResourceWithStreamingResponse,
27
+ )
28
+ from ....pagination import SyncOffsetPage, AsyncOffsetPage
29
+ from ....types.cloud import (
30
+ file_share_list_params,
31
+ file_share_create_params,
32
+ file_share_resize_params,
33
+ file_share_update_params,
34
+ )
35
+ from ...._base_client import AsyncPaginator, make_request_options
36
+ from ....types.cloud.file_share import FileShare
37
+ from ....types.cloud.task_id_list import TaskIDList
38
+ from ....types.cloud.tag_update_map_param import TagUpdateMapParam
39
+
40
+ __all__ = ["FileSharesResource", "AsyncFileSharesResource"]
41
+
42
+
43
+ class FileSharesResource(SyncAPIResource):
44
+ @cached_property
45
+ def access_rules(self) -> AccessRulesResource:
46
+ return AccessRulesResource(self._client)
47
+
48
+ @cached_property
49
+ def with_raw_response(self) -> FileSharesResourceWithRawResponse:
50
+ """
51
+ This property can be used as a prefix for any HTTP method call to return
52
+ the raw response object instead of the parsed content.
53
+
54
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
55
+ """
56
+ return FileSharesResourceWithRawResponse(self)
57
+
58
+ @cached_property
59
+ def with_streaming_response(self) -> FileSharesResourceWithStreamingResponse:
60
+ """
61
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
62
+
63
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
64
+ """
65
+ return FileSharesResourceWithStreamingResponse(self)
66
+
67
+ @overload
68
+ def create(
69
+ self,
70
+ *,
71
+ project_id: int | None = None,
72
+ region_id: int | None = None,
73
+ name: str,
74
+ network: file_share_create_params.CreateStandardFileShareSerializerNetwork,
75
+ protocol: Literal["NFS"],
76
+ size: int,
77
+ access: Iterable[file_share_create_params.CreateStandardFileShareSerializerAccess] | NotGiven = NOT_GIVEN,
78
+ tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
79
+ volume_type: Literal["default_share_type"] | NotGiven = NOT_GIVEN,
80
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
81
+ # The extra values given here take precedence over values defined on the client or passed to this method.
82
+ extra_headers: Headers | None = None,
83
+ extra_query: Query | None = None,
84
+ extra_body: Body | None = None,
85
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
86
+ ) -> TaskIDList:
87
+ """
88
+ Create file share
89
+
90
+ Args:
91
+ project_id: Project ID
92
+
93
+ region_id: Region ID
94
+
95
+ name: File share name
96
+
97
+ network: File share network configuration
98
+
99
+ protocol: File share protocol
100
+
101
+ size: File share size
102
+
103
+ access: Access Rules
104
+
105
+ tags: Key-value tags to associate with the resource. A tag is a key-value pair that
106
+ can be associated with a resource, enabling efficient filtering and grouping for
107
+ better organization and management. Some tags are read-only and cannot be
108
+ modified by the user. Tags are also integrated with cost reports, allowing cost
109
+ data to be filtered based on tag keys or values.
110
+
111
+ volume_type: File share volume type
112
+
113
+ extra_headers: Send extra headers
114
+
115
+ extra_query: Add additional query parameters to the request
116
+
117
+ extra_body: Add additional JSON properties to the request
118
+
119
+ timeout: Override the client-level default timeout for this request, in seconds
120
+ """
121
+ ...
122
+
123
+ @overload
124
+ def create(
125
+ self,
126
+ *,
127
+ project_id: int | None = None,
128
+ region_id: int | None = None,
129
+ name: str,
130
+ protocol: Literal["NFS"],
131
+ size: int,
132
+ volume_type: Literal["vast_share_type"],
133
+ tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
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
+ ) -> TaskIDList:
141
+ """
142
+ Create file share
143
+
144
+ Args:
145
+ project_id: Project ID
146
+
147
+ region_id: Region ID
148
+
149
+ name: File share name
150
+
151
+ protocol: File share protocol
152
+
153
+ size: File share size
154
+
155
+ volume_type: File share volume type
156
+
157
+ tags: Key-value tags to associate with the resource. A tag is a key-value pair that
158
+ can be associated with a resource, enabling efficient filtering and grouping for
159
+ better organization and management. Some tags are read-only and cannot be
160
+ modified by the user. Tags are also integrated with cost reports, allowing cost
161
+ data to be filtered based on tag keys or values.
162
+
163
+ extra_headers: Send extra headers
164
+
165
+ extra_query: Add additional query parameters to the request
166
+
167
+ extra_body: Add additional JSON properties to the request
168
+
169
+ timeout: Override the client-level default timeout for this request, in seconds
170
+ """
171
+ ...
172
+
173
+ @required_args(["name", "network", "protocol", "size"], ["name", "protocol", "size", "volume_type"])
174
+ def create(
175
+ self,
176
+ *,
177
+ project_id: int | None = None,
178
+ region_id: int | None = None,
179
+ name: str,
180
+ network: file_share_create_params.CreateStandardFileShareSerializerNetwork | NotGiven = NOT_GIVEN,
181
+ protocol: Literal["NFS"],
182
+ size: int,
183
+ access: Iterable[file_share_create_params.CreateStandardFileShareSerializerAccess] | NotGiven = NOT_GIVEN,
184
+ tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
185
+ volume_type: Literal["default_share_type"] | Literal["vast_share_type"] | NotGiven = NOT_GIVEN,
186
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
187
+ # The extra values given here take precedence over values defined on the client or passed to this method.
188
+ extra_headers: Headers | None = None,
189
+ extra_query: Query | None = None,
190
+ extra_body: Body | None = None,
191
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
192
+ ) -> TaskIDList:
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
+ return self._post(
198
+ f"/cloud/v1/file_shares/{project_id}/{region_id}",
199
+ body=maybe_transform(
200
+ {
201
+ "name": name,
202
+ "network": network,
203
+ "protocol": protocol,
204
+ "size": size,
205
+ "access": access,
206
+ "tags": tags,
207
+ "volume_type": volume_type,
208
+ },
209
+ file_share_create_params.FileShareCreateParams,
210
+ ),
211
+ options=make_request_options(
212
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
213
+ ),
214
+ cast_to=TaskIDList,
215
+ )
216
+
217
+ def update(
218
+ self,
219
+ file_share_id: str,
220
+ *,
221
+ project_id: int | None = None,
222
+ region_id: int | None = None,
223
+ name: str,
224
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
225
+ # The extra values given here take precedence over values defined on the client or passed to this method.
226
+ extra_headers: Headers | None = None,
227
+ extra_query: Query | None = None,
228
+ extra_body: Body | None = None,
229
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
230
+ ) -> FileShare:
231
+ """
232
+ Rename file share
233
+
234
+ Args:
235
+ project_id: Project ID
236
+
237
+ region_id: Region ID
238
+
239
+ file_share_id: File Share ID
240
+
241
+ name: Name.
242
+
243
+ extra_headers: Send extra headers
244
+
245
+ extra_query: Add additional query parameters to the request
246
+
247
+ extra_body: Add additional JSON properties to the request
248
+
249
+ timeout: Override the client-level default timeout for this request, in seconds
250
+ """
251
+ if project_id is None:
252
+ project_id = self._client._get_cloud_project_id_path_param()
253
+ if region_id is None:
254
+ region_id = self._client._get_cloud_region_id_path_param()
255
+ if not file_share_id:
256
+ raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
257
+ return self._patch(
258
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
259
+ body=maybe_transform({"name": name}, file_share_update_params.FileShareUpdateParams),
260
+ options=make_request_options(
261
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
262
+ ),
263
+ cast_to=FileShare,
264
+ )
265
+
266
+ def list(
267
+ self,
268
+ *,
269
+ project_id: int | None = None,
270
+ region_id: int | None = None,
271
+ limit: int | NotGiven = NOT_GIVEN,
272
+ offset: int | NotGiven = NOT_GIVEN,
273
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
274
+ # The extra values given here take precedence over values defined on the client or passed to this method.
275
+ extra_headers: Headers | None = None,
276
+ extra_query: Query | None = None,
277
+ extra_body: Body | None = None,
278
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
279
+ ) -> SyncOffsetPage[FileShare]:
280
+ """
281
+ List file shares
282
+
283
+ Args:
284
+ project_id: Project ID
285
+
286
+ region_id: Region ID
287
+
288
+ limit: Optional. Limit the number of returned items
289
+
290
+ offset: Optional. Offset value is used to exclude the first set of records from the
291
+ result
292
+
293
+ extra_headers: Send extra headers
294
+
295
+ extra_query: Add additional query parameters to the request
296
+
297
+ extra_body: Add additional JSON properties to the request
298
+
299
+ timeout: Override the client-level default timeout for this request, in seconds
300
+ """
301
+ if project_id is None:
302
+ project_id = self._client._get_cloud_project_id_path_param()
303
+ if region_id is None:
304
+ region_id = self._client._get_cloud_region_id_path_param()
305
+ return self._get_api_list(
306
+ f"/cloud/v1/file_shares/{project_id}/{region_id}",
307
+ page=SyncOffsetPage[FileShare],
308
+ options=make_request_options(
309
+ extra_headers=extra_headers,
310
+ extra_query=extra_query,
311
+ extra_body=extra_body,
312
+ timeout=timeout,
313
+ query=maybe_transform(
314
+ {
315
+ "limit": limit,
316
+ "offset": offset,
317
+ },
318
+ file_share_list_params.FileShareListParams,
319
+ ),
320
+ ),
321
+ model=FileShare,
322
+ )
323
+
324
+ def delete(
325
+ self,
326
+ file_share_id: str,
327
+ *,
328
+ project_id: int | None = None,
329
+ region_id: int | None = None,
330
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
331
+ # The extra values given here take precedence over values defined on the client or passed to this method.
332
+ extra_headers: Headers | None = None,
333
+ extra_query: Query | None = None,
334
+ extra_body: Body | None = None,
335
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
336
+ ) -> TaskIDList:
337
+ """
338
+ Delete file share
339
+
340
+ Args:
341
+ project_id: Project ID
342
+
343
+ region_id: Region ID
344
+
345
+ file_share_id: File Share ID
346
+
347
+ extra_headers: Send extra headers
348
+
349
+ extra_query: Add additional query parameters to the request
350
+
351
+ extra_body: Add additional JSON properties to the request
352
+
353
+ timeout: Override the client-level default timeout for this request, in seconds
354
+ """
355
+ if project_id is None:
356
+ project_id = self._client._get_cloud_project_id_path_param()
357
+ if region_id is None:
358
+ region_id = self._client._get_cloud_region_id_path_param()
359
+ if not file_share_id:
360
+ raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
361
+ return self._delete(
362
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
363
+ options=make_request_options(
364
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
365
+ ),
366
+ cast_to=TaskIDList,
367
+ )
368
+
369
+ def get(
370
+ self,
371
+ file_share_id: str,
372
+ *,
373
+ project_id: int | None = None,
374
+ region_id: int | None = None,
375
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
376
+ # The extra values given here take precedence over values defined on the client or passed to this method.
377
+ extra_headers: Headers | None = None,
378
+ extra_query: Query | None = None,
379
+ extra_body: Body | None = None,
380
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
381
+ ) -> FileShare:
382
+ """
383
+ Get file share
384
+
385
+ Args:
386
+ project_id: Project ID
387
+
388
+ region_id: Region ID
389
+
390
+ file_share_id: File Share ID
391
+
392
+ extra_headers: Send extra headers
393
+
394
+ extra_query: Add additional query parameters to the request
395
+
396
+ extra_body: Add additional JSON properties to the request
397
+
398
+ timeout: Override the client-level default timeout for this request, in seconds
399
+ """
400
+ if project_id is None:
401
+ project_id = self._client._get_cloud_project_id_path_param()
402
+ if region_id is None:
403
+ region_id = self._client._get_cloud_region_id_path_param()
404
+ if not file_share_id:
405
+ raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
406
+ return self._get(
407
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
408
+ options=make_request_options(
409
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
410
+ ),
411
+ cast_to=FileShare,
412
+ )
413
+
414
+ def resize(
415
+ self,
416
+ file_share_id: str,
417
+ *,
418
+ project_id: int | None = None,
419
+ region_id: int | None = None,
420
+ size: int,
421
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
422
+ # The extra values given here take precedence over values defined on the client or passed to this method.
423
+ extra_headers: Headers | None = None,
424
+ extra_query: Query | None = None,
425
+ extra_body: Body | None = None,
426
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
427
+ ) -> TaskIDList:
428
+ """
429
+ Resize file share
430
+
431
+ Args:
432
+ project_id: Project ID
433
+
434
+ region_id: Region ID
435
+
436
+ file_share_id: File Share ID
437
+
438
+ size: File Share new size in GiB.
439
+
440
+ extra_headers: Send extra headers
441
+
442
+ extra_query: Add additional query parameters to the request
443
+
444
+ extra_body: Add additional JSON properties to the request
445
+
446
+ timeout: Override the client-level default timeout for this request, in seconds
447
+ """
448
+ if project_id is None:
449
+ project_id = self._client._get_cloud_project_id_path_param()
450
+ if region_id is None:
451
+ region_id = self._client._get_cloud_region_id_path_param()
452
+ if not file_share_id:
453
+ raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
454
+ return self._post(
455
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend",
456
+ body=maybe_transform({"size": size}, file_share_resize_params.FileShareResizeParams),
457
+ options=make_request_options(
458
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
459
+ ),
460
+ cast_to=TaskIDList,
461
+ )
462
+
463
+
464
+ class AsyncFileSharesResource(AsyncAPIResource):
465
+ @cached_property
466
+ def access_rules(self) -> AsyncAccessRulesResource:
467
+ return AsyncAccessRulesResource(self._client)
468
+
469
+ @cached_property
470
+ def with_raw_response(self) -> AsyncFileSharesResourceWithRawResponse:
471
+ """
472
+ This property can be used as a prefix for any HTTP method call to return
473
+ the raw response object instead of the parsed content.
474
+
475
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
476
+ """
477
+ return AsyncFileSharesResourceWithRawResponse(self)
478
+
479
+ @cached_property
480
+ def with_streaming_response(self) -> AsyncFileSharesResourceWithStreamingResponse:
481
+ """
482
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
483
+
484
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
485
+ """
486
+ return AsyncFileSharesResourceWithStreamingResponse(self)
487
+
488
+ @overload
489
+ async def create(
490
+ self,
491
+ *,
492
+ project_id: int | None = None,
493
+ region_id: int | None = None,
494
+ name: str,
495
+ network: file_share_create_params.CreateStandardFileShareSerializerNetwork,
496
+ protocol: Literal["NFS"],
497
+ size: int,
498
+ access: Iterable[file_share_create_params.CreateStandardFileShareSerializerAccess] | NotGiven = NOT_GIVEN,
499
+ tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
500
+ volume_type: Literal["default_share_type"] | NotGiven = NOT_GIVEN,
501
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
502
+ # The extra values given here take precedence over values defined on the client or passed to this method.
503
+ extra_headers: Headers | None = None,
504
+ extra_query: Query | None = None,
505
+ extra_body: Body | None = None,
506
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
507
+ ) -> TaskIDList:
508
+ """
509
+ Create file share
510
+
511
+ Args:
512
+ project_id: Project ID
513
+
514
+ region_id: Region ID
515
+
516
+ name: File share name
517
+
518
+ network: File share network configuration
519
+
520
+ protocol: File share protocol
521
+
522
+ size: File share size
523
+
524
+ access: Access Rules
525
+
526
+ tags: Key-value tags to associate with the resource. A tag is a key-value pair that
527
+ can be associated with a resource, enabling efficient filtering and grouping for
528
+ better organization and management. Some tags are read-only and cannot be
529
+ modified by the user. Tags are also integrated with cost reports, allowing cost
530
+ data to be filtered based on tag keys or values.
531
+
532
+ volume_type: File share volume type
533
+
534
+ extra_headers: Send extra headers
535
+
536
+ extra_query: Add additional query parameters to the request
537
+
538
+ extra_body: Add additional JSON properties to the request
539
+
540
+ timeout: Override the client-level default timeout for this request, in seconds
541
+ """
542
+ ...
543
+
544
+ @overload
545
+ async def create(
546
+ self,
547
+ *,
548
+ project_id: int | None = None,
549
+ region_id: int | None = None,
550
+ name: str,
551
+ protocol: Literal["NFS"],
552
+ size: int,
553
+ volume_type: Literal["vast_share_type"],
554
+ tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
555
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
556
+ # The extra values given here take precedence over values defined on the client or passed to this method.
557
+ extra_headers: Headers | None = None,
558
+ extra_query: Query | None = None,
559
+ extra_body: Body | None = None,
560
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
561
+ ) -> TaskIDList:
562
+ """
563
+ Create file share
564
+
565
+ Args:
566
+ project_id: Project ID
567
+
568
+ region_id: Region ID
569
+
570
+ name: File share name
571
+
572
+ protocol: File share protocol
573
+
574
+ size: File share size
575
+
576
+ volume_type: File share volume type
577
+
578
+ tags: Key-value tags to associate with the resource. A tag is a key-value pair that
579
+ can be associated with a resource, enabling efficient filtering and grouping for
580
+ better organization and management. Some tags are read-only and cannot be
581
+ modified by the user. Tags are also integrated with cost reports, allowing cost
582
+ data to be filtered based on tag keys or values.
583
+
584
+ extra_headers: Send extra headers
585
+
586
+ extra_query: Add additional query parameters to the request
587
+
588
+ extra_body: Add additional JSON properties to the request
589
+
590
+ timeout: Override the client-level default timeout for this request, in seconds
591
+ """
592
+ ...
593
+
594
+ @required_args(["name", "network", "protocol", "size"], ["name", "protocol", "size", "volume_type"])
595
+ async def create(
596
+ self,
597
+ *,
598
+ project_id: int | None = None,
599
+ region_id: int | None = None,
600
+ name: str,
601
+ network: file_share_create_params.CreateStandardFileShareSerializerNetwork | NotGiven = NOT_GIVEN,
602
+ protocol: Literal["NFS"],
603
+ size: int,
604
+ access: Iterable[file_share_create_params.CreateStandardFileShareSerializerAccess] | NotGiven = NOT_GIVEN,
605
+ tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
606
+ volume_type: Literal["default_share_type"] | Literal["vast_share_type"] | NotGiven = NOT_GIVEN,
607
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
608
+ # The extra values given here take precedence over values defined on the client or passed to this method.
609
+ extra_headers: Headers | None = None,
610
+ extra_query: Query | None = None,
611
+ extra_body: Body | None = None,
612
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
613
+ ) -> TaskIDList:
614
+ if project_id is None:
615
+ project_id = self._client._get_cloud_project_id_path_param()
616
+ if region_id is None:
617
+ region_id = self._client._get_cloud_region_id_path_param()
618
+ return await self._post(
619
+ f"/cloud/v1/file_shares/{project_id}/{region_id}",
620
+ body=await async_maybe_transform(
621
+ {
622
+ "name": name,
623
+ "network": network,
624
+ "protocol": protocol,
625
+ "size": size,
626
+ "access": access,
627
+ "tags": tags,
628
+ "volume_type": volume_type,
629
+ },
630
+ file_share_create_params.FileShareCreateParams,
631
+ ),
632
+ options=make_request_options(
633
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
634
+ ),
635
+ cast_to=TaskIDList,
636
+ )
637
+
638
+ async def update(
639
+ self,
640
+ file_share_id: str,
641
+ *,
642
+ project_id: int | None = None,
643
+ region_id: int | None = None,
644
+ name: str,
645
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
646
+ # The extra values given here take precedence over values defined on the client or passed to this method.
647
+ extra_headers: Headers | None = None,
648
+ extra_query: Query | None = None,
649
+ extra_body: Body | None = None,
650
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
651
+ ) -> FileShare:
652
+ """
653
+ Rename file share
654
+
655
+ Args:
656
+ project_id: Project ID
657
+
658
+ region_id: Region ID
659
+
660
+ file_share_id: File Share ID
661
+
662
+ name: Name.
663
+
664
+ extra_headers: Send extra headers
665
+
666
+ extra_query: Add additional query parameters to the request
667
+
668
+ extra_body: Add additional JSON properties to the request
669
+
670
+ timeout: Override the client-level default timeout for this request, in seconds
671
+ """
672
+ if project_id is None:
673
+ project_id = self._client._get_cloud_project_id_path_param()
674
+ if region_id is None:
675
+ region_id = self._client._get_cloud_region_id_path_param()
676
+ if not file_share_id:
677
+ raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
678
+ return await self._patch(
679
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
680
+ body=await async_maybe_transform({"name": name}, file_share_update_params.FileShareUpdateParams),
681
+ options=make_request_options(
682
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
683
+ ),
684
+ cast_to=FileShare,
685
+ )
686
+
687
+ def list(
688
+ self,
689
+ *,
690
+ project_id: int | None = None,
691
+ region_id: int | None = None,
692
+ limit: int | NotGiven = NOT_GIVEN,
693
+ offset: int | NotGiven = NOT_GIVEN,
694
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
695
+ # The extra values given here take precedence over values defined on the client or passed to this method.
696
+ extra_headers: Headers | None = None,
697
+ extra_query: Query | None = None,
698
+ extra_body: Body | None = None,
699
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
700
+ ) -> AsyncPaginator[FileShare, AsyncOffsetPage[FileShare]]:
701
+ """
702
+ List file shares
703
+
704
+ Args:
705
+ project_id: Project ID
706
+
707
+ region_id: Region ID
708
+
709
+ limit: Optional. Limit the number of returned items
710
+
711
+ offset: Optional. Offset value is used to exclude the first set of records from the
712
+ result
713
+
714
+ extra_headers: Send extra headers
715
+
716
+ extra_query: Add additional query parameters to the request
717
+
718
+ extra_body: Add additional JSON properties to the request
719
+
720
+ timeout: Override the client-level default timeout for this request, in seconds
721
+ """
722
+ if project_id is None:
723
+ project_id = self._client._get_cloud_project_id_path_param()
724
+ if region_id is None:
725
+ region_id = self._client._get_cloud_region_id_path_param()
726
+ return self._get_api_list(
727
+ f"/cloud/v1/file_shares/{project_id}/{region_id}",
728
+ page=AsyncOffsetPage[FileShare],
729
+ options=make_request_options(
730
+ extra_headers=extra_headers,
731
+ extra_query=extra_query,
732
+ extra_body=extra_body,
733
+ timeout=timeout,
734
+ query=maybe_transform(
735
+ {
736
+ "limit": limit,
737
+ "offset": offset,
738
+ },
739
+ file_share_list_params.FileShareListParams,
740
+ ),
741
+ ),
742
+ model=FileShare,
743
+ )
744
+
745
+ async def delete(
746
+ self,
747
+ file_share_id: str,
748
+ *,
749
+ project_id: int | None = None,
750
+ region_id: int | None = None,
751
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
752
+ # The extra values given here take precedence over values defined on the client or passed to this method.
753
+ extra_headers: Headers | None = None,
754
+ extra_query: Query | None = None,
755
+ extra_body: Body | None = None,
756
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
757
+ ) -> TaskIDList:
758
+ """
759
+ Delete file share
760
+
761
+ Args:
762
+ project_id: Project ID
763
+
764
+ region_id: Region ID
765
+
766
+ file_share_id: File Share ID
767
+
768
+ extra_headers: Send extra headers
769
+
770
+ extra_query: Add additional query parameters to the request
771
+
772
+ extra_body: Add additional JSON properties to the request
773
+
774
+ timeout: Override the client-level default timeout for this request, in seconds
775
+ """
776
+ if project_id is None:
777
+ project_id = self._client._get_cloud_project_id_path_param()
778
+ if region_id is None:
779
+ region_id = self._client._get_cloud_region_id_path_param()
780
+ if not file_share_id:
781
+ raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
782
+ return await self._delete(
783
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
784
+ options=make_request_options(
785
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
786
+ ),
787
+ cast_to=TaskIDList,
788
+ )
789
+
790
+ async def get(
791
+ self,
792
+ file_share_id: str,
793
+ *,
794
+ project_id: int | None = None,
795
+ region_id: int | None = None,
796
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
797
+ # The extra values given here take precedence over values defined on the client or passed to this method.
798
+ extra_headers: Headers | None = None,
799
+ extra_query: Query | None = None,
800
+ extra_body: Body | None = None,
801
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
802
+ ) -> FileShare:
803
+ """
804
+ Get file share
805
+
806
+ Args:
807
+ project_id: Project ID
808
+
809
+ region_id: Region ID
810
+
811
+ file_share_id: File Share ID
812
+
813
+ extra_headers: Send extra headers
814
+
815
+ extra_query: Add additional query parameters to the request
816
+
817
+ extra_body: Add additional JSON properties to the request
818
+
819
+ timeout: Override the client-level default timeout for this request, in seconds
820
+ """
821
+ if project_id is None:
822
+ project_id = self._client._get_cloud_project_id_path_param()
823
+ if region_id is None:
824
+ region_id = self._client._get_cloud_region_id_path_param()
825
+ if not file_share_id:
826
+ raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
827
+ return await self._get(
828
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
829
+ options=make_request_options(
830
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
831
+ ),
832
+ cast_to=FileShare,
833
+ )
834
+
835
+ async def resize(
836
+ self,
837
+ file_share_id: str,
838
+ *,
839
+ project_id: int | None = None,
840
+ region_id: int | None = None,
841
+ size: int,
842
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
843
+ # The extra values given here take precedence over values defined on the client or passed to this method.
844
+ extra_headers: Headers | None = None,
845
+ extra_query: Query | None = None,
846
+ extra_body: Body | None = None,
847
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
848
+ ) -> TaskIDList:
849
+ """
850
+ Resize file share
851
+
852
+ Args:
853
+ project_id: Project ID
854
+
855
+ region_id: Region ID
856
+
857
+ file_share_id: File Share ID
858
+
859
+ size: File Share new size in GiB.
860
+
861
+ extra_headers: Send extra headers
862
+
863
+ extra_query: Add additional query parameters to the request
864
+
865
+ extra_body: Add additional JSON properties to the request
866
+
867
+ timeout: Override the client-level default timeout for this request, in seconds
868
+ """
869
+ if project_id is None:
870
+ project_id = self._client._get_cloud_project_id_path_param()
871
+ if region_id is None:
872
+ region_id = self._client._get_cloud_region_id_path_param()
873
+ if not file_share_id:
874
+ raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
875
+ return await self._post(
876
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend",
877
+ body=await async_maybe_transform({"size": size}, file_share_resize_params.FileShareResizeParams),
878
+ options=make_request_options(
879
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
880
+ ),
881
+ cast_to=TaskIDList,
882
+ )
883
+
884
+
885
+ class FileSharesResourceWithRawResponse:
886
+ def __init__(self, file_shares: FileSharesResource) -> None:
887
+ self._file_shares = file_shares
888
+
889
+ self.create = to_raw_response_wrapper(
890
+ file_shares.create,
891
+ )
892
+ self.update = to_raw_response_wrapper(
893
+ file_shares.update,
894
+ )
895
+ self.list = to_raw_response_wrapper(
896
+ file_shares.list,
897
+ )
898
+ self.delete = to_raw_response_wrapper(
899
+ file_shares.delete,
900
+ )
901
+ self.get = to_raw_response_wrapper(
902
+ file_shares.get,
903
+ )
904
+ self.resize = to_raw_response_wrapper(
905
+ file_shares.resize,
906
+ )
907
+
908
+ @cached_property
909
+ def access_rules(self) -> AccessRulesResourceWithRawResponse:
910
+ return AccessRulesResourceWithRawResponse(self._file_shares.access_rules)
911
+
912
+
913
+ class AsyncFileSharesResourceWithRawResponse:
914
+ def __init__(self, file_shares: AsyncFileSharesResource) -> None:
915
+ self._file_shares = file_shares
916
+
917
+ self.create = async_to_raw_response_wrapper(
918
+ file_shares.create,
919
+ )
920
+ self.update = async_to_raw_response_wrapper(
921
+ file_shares.update,
922
+ )
923
+ self.list = async_to_raw_response_wrapper(
924
+ file_shares.list,
925
+ )
926
+ self.delete = async_to_raw_response_wrapper(
927
+ file_shares.delete,
928
+ )
929
+ self.get = async_to_raw_response_wrapper(
930
+ file_shares.get,
931
+ )
932
+ self.resize = async_to_raw_response_wrapper(
933
+ file_shares.resize,
934
+ )
935
+
936
+ @cached_property
937
+ def access_rules(self) -> AsyncAccessRulesResourceWithRawResponse:
938
+ return AsyncAccessRulesResourceWithRawResponse(self._file_shares.access_rules)
939
+
940
+
941
+ class FileSharesResourceWithStreamingResponse:
942
+ def __init__(self, file_shares: FileSharesResource) -> None:
943
+ self._file_shares = file_shares
944
+
945
+ self.create = to_streamed_response_wrapper(
946
+ file_shares.create,
947
+ )
948
+ self.update = to_streamed_response_wrapper(
949
+ file_shares.update,
950
+ )
951
+ self.list = to_streamed_response_wrapper(
952
+ file_shares.list,
953
+ )
954
+ self.delete = to_streamed_response_wrapper(
955
+ file_shares.delete,
956
+ )
957
+ self.get = to_streamed_response_wrapper(
958
+ file_shares.get,
959
+ )
960
+ self.resize = to_streamed_response_wrapper(
961
+ file_shares.resize,
962
+ )
963
+
964
+ @cached_property
965
+ def access_rules(self) -> AccessRulesResourceWithStreamingResponse:
966
+ return AccessRulesResourceWithStreamingResponse(self._file_shares.access_rules)
967
+
968
+
969
+ class AsyncFileSharesResourceWithStreamingResponse:
970
+ def __init__(self, file_shares: AsyncFileSharesResource) -> None:
971
+ self._file_shares = file_shares
972
+
973
+ self.create = async_to_streamed_response_wrapper(
974
+ file_shares.create,
975
+ )
976
+ self.update = async_to_streamed_response_wrapper(
977
+ file_shares.update,
978
+ )
979
+ self.list = async_to_streamed_response_wrapper(
980
+ file_shares.list,
981
+ )
982
+ self.delete = async_to_streamed_response_wrapper(
983
+ file_shares.delete,
984
+ )
985
+ self.get = async_to_streamed_response_wrapper(
986
+ file_shares.get,
987
+ )
988
+ self.resize = async_to_streamed_response_wrapper(
989
+ file_shares.resize,
990
+ )
991
+
992
+ @cached_property
993
+ def access_rules(self) -> AsyncAccessRulesResourceWithStreamingResponse:
994
+ return AsyncAccessRulesResourceWithStreamingResponse(self._file_shares.access_rules)