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,16 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["InstanceAddToPlacementGroupParams"]
8
+
9
+
10
+ class InstanceAddToPlacementGroupParams(TypedDict, total=False):
11
+ project_id: int
12
+
13
+ region_id: int
14
+
15
+ servergroup_id: Required[str]
16
+ """Anti-affinity or affinity or soft-anti-affinity server group ID."""
@@ -0,0 +1,28 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List, Iterable, Optional
6
+ from typing_extensions import Required, TypedDict
7
+
8
+ __all__ = ["InstanceAssignSecurityGroupParams", "PortsSecurityGroupName"]
9
+
10
+
11
+ class InstanceAssignSecurityGroupParams(TypedDict, total=False):
12
+ project_id: int
13
+
14
+ region_id: int
15
+
16
+ name: str
17
+ """Security group name, applies to all ports"""
18
+
19
+ ports_security_group_names: Iterable[PortsSecurityGroupName]
20
+ """Port security groups mapping"""
21
+
22
+
23
+ class PortsSecurityGroupName(TypedDict, total=False):
24
+ port_id: Required[Optional[str]]
25
+ """Port ID. If None, security groups will be applied to all ports"""
26
+
27
+ security_group_names: Required[List[str]]
28
+ """List of security group names"""
@@ -0,0 +1,622 @@
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 Union, Iterable, Optional
6
+ from typing_extensions import Literal, Required, TypeAlias, TypedDict
7
+
8
+ from .interface_ip_family import InterfaceIPFamily
9
+ from .tag_update_map_param import TagUpdateMapParam
10
+
11
+ __all__ = [
12
+ "InstanceCreateParams",
13
+ "Interface",
14
+ "InterfaceNewInterfaceExternalSerializerPydantic",
15
+ "InterfaceNewInterfaceExternalSerializerPydanticSecurityGroup",
16
+ "InterfaceNewInterfaceSpecificSubnetFipSerializerPydantic",
17
+ "InterfaceNewInterfaceSpecificSubnetFipSerializerPydanticFloatingIP",
18
+ "InterfaceNewInterfaceSpecificSubnetFipSerializerPydanticFloatingIPNewInstanceFloatingIPInterfaceSerializer",
19
+ "InterfaceNewInterfaceSpecificSubnetFipSerializerPydanticFloatingIPExistingInstanceFloatingIPInterfaceSerializer",
20
+ "InterfaceNewInterfaceSpecificSubnetFipSerializerPydanticSecurityGroup",
21
+ "InterfaceNewInterfaceAnySubnetFipSerializerPydantic",
22
+ "InterfaceNewInterfaceAnySubnetFipSerializerPydanticFloatingIP",
23
+ "InterfaceNewInterfaceAnySubnetFipSerializerPydanticFloatingIPNewInstanceFloatingIPInterfaceSerializer",
24
+ "InterfaceNewInterfaceAnySubnetFipSerializerPydanticFloatingIPExistingInstanceFloatingIPInterfaceSerializer",
25
+ "InterfaceNewInterfaceAnySubnetFipSerializerPydanticSecurityGroup",
26
+ "InterfaceNewInterfaceReservedFixedIPFipSerializerPydantic",
27
+ "InterfaceNewInterfaceReservedFixedIPFipSerializerPydanticFloatingIP",
28
+ "InterfaceNewInterfaceReservedFixedIPFipSerializerPydanticFloatingIPNewInstanceFloatingIPInterfaceSerializer",
29
+ "InterfaceNewInterfaceReservedFixedIPFipSerializerPydanticFloatingIPExistingInstanceFloatingIPInterfaceSerializer",
30
+ "InterfaceNewInterfaceReservedFixedIPFipSerializerPydanticSecurityGroup",
31
+ "Volume",
32
+ "VolumeCreateInstanceCreateNewVolumeSerializer",
33
+ "VolumeCreateInstanceCreateVolumeFromImageSerializer",
34
+ "VolumeCreateInstanceCreateVolumeFromSnapshotSerializer",
35
+ "VolumeCreateInstanceCreateVolumeFromApptemplateSerializer",
36
+ "VolumeCreateInstanceExistingVolumeSerializer",
37
+ "SecurityGroup",
38
+ ]
39
+
40
+
41
+ class InstanceCreateParams(TypedDict, total=False):
42
+ project_id: int
43
+ """Project ID"""
44
+
45
+ region_id: int
46
+ """Region ID"""
47
+
48
+ flavor: Required[str]
49
+ """The flavor of the instance."""
50
+
51
+ interfaces: Required[Iterable[Interface]]
52
+ """A list of network interfaces for the instance.
53
+
54
+ You can create one or more interfaces - private, public, or both.
55
+ """
56
+
57
+ volumes: Required[Iterable[Volume]]
58
+ """List of volumes that will be attached to the instance."""
59
+
60
+ allow_app_ports: bool
61
+ """Set to `true` if creating the instance from an `apptemplate`.
62
+
63
+ This allows application ports in the security group for instances created from a
64
+ marketplace application template.
65
+ """
66
+
67
+ configuration: Optional[object]
68
+ """
69
+ Parameters for the application template if creating the instance from an
70
+ `apptemplate`.
71
+ """
72
+
73
+ name: str
74
+ """Instance name."""
75
+
76
+ name_template: str
77
+ """
78
+ If you want the instance name to be automatically generated based on IP
79
+ addresses, you can provide a name template instead of specifying the name
80
+ manually. The template should include a placeholder that will be replaced during
81
+ provisioning. Supported placeholders are: `{ip_octets}` (last 3 octets of the
82
+ IP), `{two_ip_octets}`, and `{one_ip_octet}`.
83
+ """
84
+
85
+ password: str
86
+ """For Linux instances, 'username' and 'password' are used to create a new user.
87
+
88
+ When only 'password' is provided, it is set as the password for the default user
89
+ of the image. For Windows instances, 'username' cannot be specified. Use the
90
+ 'password' field to set the password for the 'Admin' user on Windows. Use the
91
+ 'user_data' field to provide a script to create new users on Windows. The
92
+ password of the Admin user cannot be updated via 'user_data'.
93
+ """
94
+
95
+ security_groups: Iterable[SecurityGroup]
96
+ """
97
+ Specifies security group UUIDs to be applied to all instance network interfaces.
98
+ """
99
+
100
+ servergroup_id: str
101
+ """Placement group ID for instance placement policy.
102
+
103
+ Supported group types:
104
+
105
+ - `anti-affinity`: Ensures instances are placed on different hosts for high
106
+ availability.
107
+ - `affinity`: Places instances on the same host for low-latency communication.
108
+ - `soft-anti-affinity`: Tries to place instances on different hosts but allows
109
+ sharing if needed.
110
+ """
111
+
112
+ ssh_key_name: Optional[str]
113
+ """
114
+ Specifies the name of the SSH keypair, created via the
115
+ <a href="#operation/SSHKeyCollectionViewSet.post">/v1/ssh_keys endpoint</a>.
116
+ """
117
+
118
+ tags: TagUpdateMapParam
119
+ """Key-value tags to associate with the resource.
120
+
121
+ A tag is a key-value pair that can be associated with a resource, enabling
122
+ efficient filtering and grouping for better organization and management. Some
123
+ tags are read-only and cannot be modified by the user. Tags are also integrated
124
+ with cost reports, allowing cost data to be filtered based on tag keys or
125
+ values.
126
+ """
127
+
128
+ user_data: str
129
+ """String in base64 format.
130
+
131
+ For Linux instances, 'user_data' is ignored when 'password' field is provided.
132
+ For Windows instances, Admin user password is set by 'password' field and cannot
133
+ be updated via 'user_data'. Examples of the user_data:
134
+ https://cloudinit.readthedocs.io/en/latest/topics/examples.html
135
+ """
136
+
137
+ username: str
138
+ """For Linux instances, 'username' and 'password' are used to create a new user.
139
+
140
+ For Windows instances, 'username' cannot be specified. Use 'password' field to
141
+ set the password for the 'Admin' user on Windows.
142
+ """
143
+
144
+
145
+ class InterfaceNewInterfaceExternalSerializerPydanticSecurityGroup(TypedDict, total=False):
146
+ id: Required[str]
147
+ """Resource ID"""
148
+
149
+
150
+ class InterfaceNewInterfaceExternalSerializerPydantic(TypedDict, total=False):
151
+ type: Required[Literal["external"]]
152
+ """A public IP address will be assigned to the instance."""
153
+
154
+ interface_name: str
155
+ """Interface name.
156
+
157
+ Defaults to `null` and is returned as `null` in the API response if not set.
158
+ """
159
+
160
+ ip_family: Optional[InterfaceIPFamily]
161
+ """Specify `ipv4`, `ipv6`, or `dual` to enable both."""
162
+
163
+ security_groups: Iterable[InterfaceNewInterfaceExternalSerializerPydanticSecurityGroup]
164
+ """Specifies security group UUIDs to be applied to the instance network interface."""
165
+
166
+
167
+ class InterfaceNewInterfaceSpecificSubnetFipSerializerPydanticFloatingIPNewInstanceFloatingIPInterfaceSerializer(
168
+ TypedDict, total=False
169
+ ):
170
+ source: Required[Literal["new"]]
171
+ """A new floating IP will be created and attached to the instance.
172
+
173
+ A floating IP is a public IP that makes the instance accessible from the
174
+ internet, even if it only has a private IP. It works like SNAT, allowing
175
+ outgoing and incoming traffic.
176
+ """
177
+
178
+
179
+ class InterfaceNewInterfaceSpecificSubnetFipSerializerPydanticFloatingIPExistingInstanceFloatingIPInterfaceSerializer(
180
+ TypedDict, total=False
181
+ ):
182
+ existing_floating_id: Required[str]
183
+ """
184
+ An existing available floating IP id must be specified if the source is set to
185
+ `existing`
186
+ """
187
+
188
+ source: Required[Literal["existing"]]
189
+ """An existing available floating IP will be attached to the instance.
190
+
191
+ A floating IP is a public IP that makes the instance accessible from the
192
+ internet, even if it only has a private IP. It works like SNAT, allowing
193
+ outgoing and incoming traffic.
194
+ """
195
+
196
+
197
+ InterfaceNewInterfaceSpecificSubnetFipSerializerPydanticFloatingIP: TypeAlias = Union[
198
+ InterfaceNewInterfaceSpecificSubnetFipSerializerPydanticFloatingIPNewInstanceFloatingIPInterfaceSerializer,
199
+ InterfaceNewInterfaceSpecificSubnetFipSerializerPydanticFloatingIPExistingInstanceFloatingIPInterfaceSerializer,
200
+ ]
201
+
202
+
203
+ class InterfaceNewInterfaceSpecificSubnetFipSerializerPydanticSecurityGroup(TypedDict, total=False):
204
+ id: Required[str]
205
+ """Resource ID"""
206
+
207
+
208
+ class InterfaceNewInterfaceSpecificSubnetFipSerializerPydantic(TypedDict, total=False):
209
+ network_id: Required[str]
210
+ """The network where the instance will be connected."""
211
+
212
+ subnet_id: Required[str]
213
+ """The instance will get an IP address from this subnet."""
214
+
215
+ type: Required[Literal["subnet"]]
216
+ """The instance will get an IP address from the selected network.
217
+
218
+ If you choose to add a floating IP, the instance will be reachable from the
219
+ internet. Otherwise, it will only have a private IP within the network.
220
+ """
221
+
222
+ floating_ip: InterfaceNewInterfaceSpecificSubnetFipSerializerPydanticFloatingIP
223
+ """Allows the instance to have a public IP that can be reached from the internet."""
224
+
225
+ interface_name: str
226
+ """Interface name.
227
+
228
+ Defaults to `null` and is returned as `null` in the API response if not set.
229
+ """
230
+
231
+ security_groups: Iterable[InterfaceNewInterfaceSpecificSubnetFipSerializerPydanticSecurityGroup]
232
+ """Specifies security group UUIDs to be applied to the instance network interface."""
233
+
234
+
235
+ class InterfaceNewInterfaceAnySubnetFipSerializerPydanticFloatingIPNewInstanceFloatingIPInterfaceSerializer(
236
+ TypedDict, total=False
237
+ ):
238
+ source: Required[Literal["new"]]
239
+ """A new floating IP will be created and attached to the instance.
240
+
241
+ A floating IP is a public IP that makes the instance accessible from the
242
+ internet, even if it only has a private IP. It works like SNAT, allowing
243
+ outgoing and incoming traffic.
244
+ """
245
+
246
+
247
+ class InterfaceNewInterfaceAnySubnetFipSerializerPydanticFloatingIPExistingInstanceFloatingIPInterfaceSerializer(
248
+ TypedDict, total=False
249
+ ):
250
+ existing_floating_id: Required[str]
251
+ """
252
+ An existing available floating IP id must be specified if the source is set to
253
+ `existing`
254
+ """
255
+
256
+ source: Required[Literal["existing"]]
257
+ """An existing available floating IP will be attached to the instance.
258
+
259
+ A floating IP is a public IP that makes the instance accessible from the
260
+ internet, even if it only has a private IP. It works like SNAT, allowing
261
+ outgoing and incoming traffic.
262
+ """
263
+
264
+
265
+ InterfaceNewInterfaceAnySubnetFipSerializerPydanticFloatingIP: TypeAlias = Union[
266
+ InterfaceNewInterfaceAnySubnetFipSerializerPydanticFloatingIPNewInstanceFloatingIPInterfaceSerializer,
267
+ InterfaceNewInterfaceAnySubnetFipSerializerPydanticFloatingIPExistingInstanceFloatingIPInterfaceSerializer,
268
+ ]
269
+
270
+
271
+ class InterfaceNewInterfaceAnySubnetFipSerializerPydanticSecurityGroup(TypedDict, total=False):
272
+ id: Required[str]
273
+ """Resource ID"""
274
+
275
+
276
+ class InterfaceNewInterfaceAnySubnetFipSerializerPydantic(TypedDict, total=False):
277
+ network_id: Required[str]
278
+ """The network where the instance will be connected."""
279
+
280
+ type: Required[Literal["any_subnet"]]
281
+ """Instance will be attached to a subnet with the largest count of free IPs."""
282
+
283
+ floating_ip: InterfaceNewInterfaceAnySubnetFipSerializerPydanticFloatingIP
284
+ """Allows the instance to have a public IP that can be reached from the internet."""
285
+
286
+ interface_name: str
287
+ """Interface name.
288
+
289
+ Defaults to `null` and is returned as `null` in the API response if not set.
290
+ """
291
+
292
+ ip_address: str
293
+ """You can specify a specific IP address from your subnet."""
294
+
295
+ ip_family: Optional[InterfaceIPFamily]
296
+ """Specify `ipv4`, `ipv6`, or `dual` to enable both."""
297
+
298
+ security_groups: Iterable[InterfaceNewInterfaceAnySubnetFipSerializerPydanticSecurityGroup]
299
+ """Specifies security group UUIDs to be applied to the instance network interface."""
300
+
301
+
302
+ class InterfaceNewInterfaceReservedFixedIPFipSerializerPydanticFloatingIPNewInstanceFloatingIPInterfaceSerializer(
303
+ TypedDict, total=False
304
+ ):
305
+ source: Required[Literal["new"]]
306
+ """A new floating IP will be created and attached to the instance.
307
+
308
+ A floating IP is a public IP that makes the instance accessible from the
309
+ internet, even if it only has a private IP. It works like SNAT, allowing
310
+ outgoing and incoming traffic.
311
+ """
312
+
313
+
314
+ class InterfaceNewInterfaceReservedFixedIPFipSerializerPydanticFloatingIPExistingInstanceFloatingIPInterfaceSerializer(
315
+ TypedDict, total=False
316
+ ):
317
+ existing_floating_id: Required[str]
318
+ """
319
+ An existing available floating IP id must be specified if the source is set to
320
+ `existing`
321
+ """
322
+
323
+ source: Required[Literal["existing"]]
324
+ """An existing available floating IP will be attached to the instance.
325
+
326
+ A floating IP is a public IP that makes the instance accessible from the
327
+ internet, even if it only has a private IP. It works like SNAT, allowing
328
+ outgoing and incoming traffic.
329
+ """
330
+
331
+
332
+ InterfaceNewInterfaceReservedFixedIPFipSerializerPydanticFloatingIP: TypeAlias = Union[
333
+ InterfaceNewInterfaceReservedFixedIPFipSerializerPydanticFloatingIPNewInstanceFloatingIPInterfaceSerializer,
334
+ InterfaceNewInterfaceReservedFixedIPFipSerializerPydanticFloatingIPExistingInstanceFloatingIPInterfaceSerializer,
335
+ ]
336
+
337
+
338
+ class InterfaceNewInterfaceReservedFixedIPFipSerializerPydanticSecurityGroup(TypedDict, total=False):
339
+ id: Required[str]
340
+ """Resource ID"""
341
+
342
+
343
+ class InterfaceNewInterfaceReservedFixedIPFipSerializerPydantic(TypedDict, total=False):
344
+ port_id: Required[str]
345
+ """Network ID the subnet belongs to. Port will be plugged in this network."""
346
+
347
+ type: Required[Literal["reserved_fixed_ip"]]
348
+ """An existing available reserved fixed IP will be attached to the instance.
349
+
350
+ If the reserved IP is not public and you choose to add a floating IP, the
351
+ instance will be accessible from the internet.
352
+ """
353
+
354
+ floating_ip: InterfaceNewInterfaceReservedFixedIPFipSerializerPydanticFloatingIP
355
+ """Allows the instance to have a public IP that can be reached from the internet."""
356
+
357
+ interface_name: str
358
+ """Interface name.
359
+
360
+ Defaults to `null` and is returned as `null` in the API response if not set.
361
+ """
362
+
363
+ security_groups: Iterable[InterfaceNewInterfaceReservedFixedIPFipSerializerPydanticSecurityGroup]
364
+ """Specifies security group UUIDs to be applied to the instance network interface."""
365
+
366
+
367
+ Interface: TypeAlias = Union[
368
+ InterfaceNewInterfaceExternalSerializerPydantic,
369
+ InterfaceNewInterfaceSpecificSubnetFipSerializerPydantic,
370
+ InterfaceNewInterfaceAnySubnetFipSerializerPydantic,
371
+ InterfaceNewInterfaceReservedFixedIPFipSerializerPydantic,
372
+ ]
373
+
374
+
375
+ class VolumeCreateInstanceCreateNewVolumeSerializer(TypedDict, total=False):
376
+ size: Required[int]
377
+ """Volume size in GiB."""
378
+
379
+ source: Required[Literal["new-volume"]]
380
+ """New volume will be created from scratch and attached to the instance."""
381
+
382
+ attachment_tag: str
383
+ """Block device attachment tag (not exposed in the normal tags)"""
384
+
385
+ delete_on_termination: bool
386
+ """Set to `true` to automatically delete the volume when the instance is deleted."""
387
+
388
+ name: str
389
+ """The name of the volume.
390
+
391
+ If not specified, a name will be generated automatically.
392
+ """
393
+
394
+ tags: TagUpdateMapParam
395
+ """Key-value tags to associate with the resource.
396
+
397
+ A tag is a key-value pair that can be associated with a resource, enabling
398
+ efficient filtering and grouping for better organization and management. Some
399
+ tags are read-only and cannot be modified by the user. Tags are also integrated
400
+ with cost reports, allowing cost data to be filtered based on tag keys or
401
+ values.
402
+ """
403
+
404
+ type_name: Literal["cold", "ssd_hiiops", "ssd_local", "ssd_lowlatency", "standard", "ultra"]
405
+ """Volume type name. Supported values:
406
+
407
+ - `standard` - Network SSD block storage offering stable performance with high
408
+ random I/O and data reliability (6 IOPS per 1 GiB, 0.4 MB/s per 1 GiB). Max
409
+ IOPS: 4500. Max bandwidth: 300 MB/s.
410
+ - `ssd_hiiops` - High-performance SSD storage for latency-sensitive
411
+ transactional workloads (60 IOPS per 1 GiB, 2.5 MB/s per 1 GiB). Max
412
+ IOPS: 9000. Max bandwidth: 500 MB/s.
413
+ - `ssd_lowlatency` - SSD storage optimized for low-latency and real-time
414
+ processing. Max IOPS: 5000. Average latency: 300 µs. Snapshots and volume
415
+ resizing are **not** supported for `ssd_lowlatency`.
416
+ """
417
+
418
+
419
+ class VolumeCreateInstanceCreateVolumeFromImageSerializer(TypedDict, total=False):
420
+ image_id: Required[str]
421
+ """Image ID."""
422
+
423
+ source: Required[Literal["image"]]
424
+ """New volume will be created from the image and attached to the instance.
425
+
426
+ Specify `boot_index=0` to boot from this volume.
427
+ """
428
+
429
+ attachment_tag: str
430
+ """Block device attachment tag (not exposed in the normal tags)"""
431
+
432
+ boot_index: int
433
+ """
434
+ - `0` means that this is the primary boot device;
435
+ - A unique positive value is set for the secondary bootable devices;
436
+ - A negative number means that the boot is prohibited.
437
+ """
438
+
439
+ delete_on_termination: bool
440
+ """Set to `true` to automatically delete the volume when the instance is deleted."""
441
+
442
+ name: str
443
+ """The name of the volume.
444
+
445
+ If not specified, a name will be generated automatically.
446
+ """
447
+
448
+ size: int
449
+ """Volume size in GiB.
450
+
451
+ - For instances: **specify the desired volume size explicitly**.
452
+ - For basic VMs: the size is set automatically based on the flavor.
453
+ """
454
+
455
+ tags: TagUpdateMapParam
456
+ """Key-value tags to associate with the resource.
457
+
458
+ A tag is a key-value pair that can be associated with a resource, enabling
459
+ efficient filtering and grouping for better organization and management. Some
460
+ tags are read-only and cannot be modified by the user. Tags are also integrated
461
+ with cost reports, allowing cost data to be filtered based on tag keys or
462
+ values.
463
+ """
464
+
465
+ type_name: Literal["cold", "ssd_hiiops", "ssd_local", "ssd_lowlatency", "standard", "ultra"]
466
+ """Volume type name. Supported values:
467
+
468
+ - `standard` - Network SSD block storage offering stable performance with high
469
+ random I/O and data reliability (6 IOPS per 1 GiB, 0.4 MB/s per 1 GiB). Max
470
+ IOPS: 4500. Max bandwidth: 300 MB/s.
471
+ - `ssd_hiiops` - High-performance SSD storage for latency-sensitive
472
+ transactional workloads (60 IOPS per 1 GiB, 2.5 MB/s per 1 GiB). Max
473
+ IOPS: 9000. Max bandwidth: 500 MB/s.
474
+ - `ssd_lowlatency` - SSD storage optimized for low-latency and real-time
475
+ processing. Max IOPS: 5000. Average latency: 300 µs. Snapshots and volume
476
+ resizing are **not** supported for `ssd_lowlatency`.
477
+ """
478
+
479
+
480
+ class VolumeCreateInstanceCreateVolumeFromSnapshotSerializer(TypedDict, total=False):
481
+ size: Required[int]
482
+ """Volume size in GiB."""
483
+
484
+ snapshot_id: Required[str]
485
+ """Snapshot ID."""
486
+
487
+ source: Required[Literal["snapshot"]]
488
+ """New volume will be created from the snapshot and attached to the instance."""
489
+
490
+ attachment_tag: str
491
+ """Block device attachment tag (not exposed in the normal tags)"""
492
+
493
+ boot_index: int
494
+ """
495
+ - `0` means that this is the primary boot device;
496
+ - A unique positive value is set for the secondary bootable devices;
497
+ - A negative number means that the boot is prohibited.
498
+ """
499
+
500
+ delete_on_termination: bool
501
+ """Set to `true` to automatically delete the volume when the instance is deleted."""
502
+
503
+ name: str
504
+ """The name of the volume.
505
+
506
+ If not specified, a name will be generated automatically.
507
+ """
508
+
509
+ tags: TagUpdateMapParam
510
+ """Key-value tags to associate with the resource.
511
+
512
+ A tag is a key-value pair that can be associated with a resource, enabling
513
+ efficient filtering and grouping for better organization and management. Some
514
+ tags are read-only and cannot be modified by the user. Tags are also integrated
515
+ with cost reports, allowing cost data to be filtered based on tag keys or
516
+ values.
517
+ """
518
+
519
+ type_name: Literal["ssd_hiiops", "standard"]
520
+ """Specifies the volume type.
521
+
522
+ If omitted, the type from the source volume will be used by default.
523
+ """
524
+
525
+
526
+ class VolumeCreateInstanceCreateVolumeFromApptemplateSerializer(TypedDict, total=False):
527
+ apptemplate_id: Required[str]
528
+ """App template ID."""
529
+
530
+ source: Required[Literal["apptemplate"]]
531
+ """New volume will be created from the app template and attached to the instance."""
532
+
533
+ attachment_tag: str
534
+ """Block device attachment tag (not exposed in the normal tags)"""
535
+
536
+ boot_index: int
537
+ """
538
+ - `0` means that this is the primary boot device;
539
+ - A unique positive value is set for the secondary bootable devices;
540
+ - A negative number means that the boot is prohibited.
541
+ """
542
+
543
+ delete_on_termination: bool
544
+ """Set to `true` to automatically delete the volume when the instance is deleted."""
545
+
546
+ name: str
547
+ """The name of the volume.
548
+
549
+ If not specified, a name will be generated automatically.
550
+ """
551
+
552
+ size: int
553
+ """Volume size in GiB."""
554
+
555
+ tags: TagUpdateMapParam
556
+ """Key-value tags to associate with the resource.
557
+
558
+ A tag is a key-value pair that can be associated with a resource, enabling
559
+ efficient filtering and grouping for better organization and management. Some
560
+ tags are read-only and cannot be modified by the user. Tags are also integrated
561
+ with cost reports, allowing cost data to be filtered based on tag keys or
562
+ values.
563
+ """
564
+
565
+ type_name: Literal["cold", "ssd_hiiops", "ssd_local", "ssd_lowlatency", "standard", "ultra"]
566
+ """Volume type name. Supported values:
567
+
568
+ - `standard` - Network SSD block storage offering stable performance with high
569
+ random I/O and data reliability (6 IOPS per 1 GiB, 0.4 MB/s per 1 GiB). Max
570
+ IOPS: 4500. Max bandwidth: 300 MB/s.
571
+ - `ssd_hiiops` - High-performance SSD storage for latency-sensitive
572
+ transactional workloads (60 IOPS per 1 GiB, 2.5 MB/s per 1 GiB). Max
573
+ IOPS: 9000. Max bandwidth: 500 MB/s.
574
+ - `ssd_lowlatency` - SSD storage optimized for low-latency and real-time
575
+ processing. Max IOPS: 5000. Average latency: 300 µs. Snapshots and volume
576
+ resizing are **not** supported for `ssd_lowlatency`.
577
+ """
578
+
579
+
580
+ class VolumeCreateInstanceExistingVolumeSerializer(TypedDict, total=False):
581
+ source: Required[Literal["existing-volume"]]
582
+ """Existing available volume will be attached to the instance."""
583
+
584
+ volume_id: Required[str]
585
+ """Volume ID."""
586
+
587
+ attachment_tag: str
588
+ """Block device attachment tag (not exposed in the normal tags)"""
589
+
590
+ boot_index: int
591
+ """
592
+ - `0` means that this is the primary boot device;
593
+ - A unique positive value is set for the secondary bootable devices;
594
+ - A negative number means that the boot is prohibited.
595
+ """
596
+
597
+ delete_on_termination: bool
598
+ """Set to `true` to automatically delete the volume when the instance is deleted."""
599
+
600
+ tags: TagUpdateMapParam
601
+ """Key-value tags to associate with the resource.
602
+
603
+ A tag is a key-value pair that can be associated with a resource, enabling
604
+ efficient filtering and grouping for better organization and management. Some
605
+ tags are read-only and cannot be modified by the user. Tags are also integrated
606
+ with cost reports, allowing cost data to be filtered based on tag keys or
607
+ values.
608
+ """
609
+
610
+
611
+ Volume: TypeAlias = Union[
612
+ VolumeCreateInstanceCreateNewVolumeSerializer,
613
+ VolumeCreateInstanceCreateVolumeFromImageSerializer,
614
+ VolumeCreateInstanceCreateVolumeFromSnapshotSerializer,
615
+ VolumeCreateInstanceCreateVolumeFromApptemplateSerializer,
616
+ VolumeCreateInstanceExistingVolumeSerializer,
617
+ ]
618
+
619
+
620
+ class SecurityGroup(TypedDict, total=False):
621
+ id: Required[str]
622
+ """Resource ID"""