gcore 0.1.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (437) hide show
  1. gcore/__init__.py +89 -0
  2. gcore/_base_client.py +1943 -0
  3. gcore/_client.py +493 -0
  4. gcore/_compat.py +219 -0
  5. gcore/_constants.py +16 -0
  6. gcore/_exceptions.py +108 -0
  7. gcore/_files.py +123 -0
  8. gcore/_models.py +803 -0
  9. gcore/_qs.py +150 -0
  10. gcore/_resource.py +43 -0
  11. gcore/_response.py +830 -0
  12. gcore/_streaming.py +333 -0
  13. gcore/_types.py +217 -0
  14. gcore/_utils/__init__.py +57 -0
  15. gcore/_utils/_logs.py +25 -0
  16. gcore/_utils/_proxy.py +65 -0
  17. gcore/_utils/_reflection.py +42 -0
  18. gcore/_utils/_resources_proxy.py +24 -0
  19. gcore/_utils/_streams.py +12 -0
  20. gcore/_utils/_sync.py +86 -0
  21. gcore/_utils/_transform.py +447 -0
  22. gcore/_utils/_typing.py +151 -0
  23. gcore/_utils/_utils.py +422 -0
  24. gcore/_version.py +4 -0
  25. gcore/lib/.keep +4 -0
  26. gcore/lib/polling.py +19 -0
  27. gcore/pagination.py +70 -0
  28. gcore/py.typed +0 -0
  29. gcore/resources/__init__.py +33 -0
  30. gcore/resources/cloud/__init__.py +327 -0
  31. gcore/resources/cloud/baremetal/__init__.py +61 -0
  32. gcore/resources/cloud/baremetal/baremetal.py +166 -0
  33. gcore/resources/cloud/baremetal/flavors.py +371 -0
  34. gcore/resources/cloud/baremetal/images.py +238 -0
  35. gcore/resources/cloud/baremetal/servers.py +1042 -0
  36. gcore/resources/cloud/billing_reservations.py +386 -0
  37. gcore/resources/cloud/cloud.py +774 -0
  38. gcore/resources/cloud/file_shares/__init__.py +33 -0
  39. gcore/resources/cloud/file_shares/access_rules.py +434 -0
  40. gcore/resources/cloud/file_shares/file_shares.py +994 -0
  41. gcore/resources/cloud/floating_ips.py +765 -0
  42. gcore/resources/cloud/gpu_baremetal_clusters/__init__.py +75 -0
  43. gcore/resources/cloud/gpu_baremetal_clusters/flavors.py +211 -0
  44. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +1493 -0
  45. gcore/resources/cloud/gpu_baremetal_clusters/images.py +785 -0
  46. gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py +175 -0
  47. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +1178 -0
  48. gcore/resources/cloud/inference/__init__.py +89 -0
  49. gcore/resources/cloud/inference/deployments/__init__.py +33 -0
  50. gcore/resources/cloud/inference/deployments/deployments.py +1493 -0
  51. gcore/resources/cloud/inference/deployments/logs.py +235 -0
  52. gcore/resources/cloud/inference/flavors.py +280 -0
  53. gcore/resources/cloud/inference/inference.py +295 -0
  54. gcore/resources/cloud/inference/models.py +289 -0
  55. gcore/resources/cloud/inference/registry_credentials.py +649 -0
  56. gcore/resources/cloud/inference/secrets.py +629 -0
  57. gcore/resources/cloud/instances/__init__.py +75 -0
  58. gcore/resources/cloud/instances/flavors.py +449 -0
  59. gcore/resources/cloud/instances/images.py +1297 -0
  60. gcore/resources/cloud/instances/instances.py +2821 -0
  61. gcore/resources/cloud/instances/interfaces.py +797 -0
  62. gcore/resources/cloud/instances/metrics.py +217 -0
  63. gcore/resources/cloud/ip_ranges.py +135 -0
  64. gcore/resources/cloud/load_balancers/__init__.py +103 -0
  65. gcore/resources/cloud/load_balancers/flavors.py +193 -0
  66. gcore/resources/cloud/load_balancers/l7_policies/__init__.py +33 -0
  67. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +1020 -0
  68. gcore/resources/cloud/load_balancers/l7_policies/rules.py +1036 -0
  69. gcore/resources/cloud/load_balancers/listeners.py +1089 -0
  70. gcore/resources/cloud/load_balancers/load_balancers.py +1583 -0
  71. gcore/resources/cloud/load_balancers/metrics.py +205 -0
  72. gcore/resources/cloud/load_balancers/pools/__init__.py +47 -0
  73. gcore/resources/cloud/load_balancers/pools/health_monitors.py +352 -0
  74. gcore/resources/cloud/load_balancers/pools/members.py +353 -0
  75. gcore/resources/cloud/load_balancers/pools/pools.py +1190 -0
  76. gcore/resources/cloud/load_balancers/statuses.py +260 -0
  77. gcore/resources/cloud/networks/__init__.py +47 -0
  78. gcore/resources/cloud/networks/networks.py +771 -0
  79. gcore/resources/cloud/networks/routers.py +875 -0
  80. gcore/resources/cloud/networks/subnets.py +865 -0
  81. gcore/resources/cloud/placement_groups.py +465 -0
  82. gcore/resources/cloud/projects.py +608 -0
  83. gcore/resources/cloud/quotas/__init__.py +33 -0
  84. gcore/resources/cloud/quotas/quotas.py +335 -0
  85. gcore/resources/cloud/quotas/requests.py +482 -0
  86. gcore/resources/cloud/regions.py +328 -0
  87. gcore/resources/cloud/registries/__init__.py +75 -0
  88. gcore/resources/cloud/registries/artifacts.py +277 -0
  89. gcore/resources/cloud/registries/registries.py +688 -0
  90. gcore/resources/cloud/registries/repositories.py +265 -0
  91. gcore/resources/cloud/registries/tags.py +190 -0
  92. gcore/resources/cloud/registries/users.py +701 -0
  93. gcore/resources/cloud/reserved_fixed_ips/__init__.py +33 -0
  94. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +965 -0
  95. gcore/resources/cloud/reserved_fixed_ips/vip.py +577 -0
  96. gcore/resources/cloud/secrets.py +797 -0
  97. gcore/resources/cloud/security_groups/__init__.py +33 -0
  98. gcore/resources/cloud/security_groups/rules.py +626 -0
  99. gcore/resources/cloud/security_groups/security_groups.py +863 -0
  100. gcore/resources/cloud/ssh_keys.py +635 -0
  101. gcore/resources/cloud/tasks.py +700 -0
  102. gcore/resources/cloud/users/__init__.py +33 -0
  103. gcore/resources/cloud/users/role_assignments.py +533 -0
  104. gcore/resources/cloud/users/users.py +102 -0
  105. gcore/resources/cloud/volumes.py +1710 -0
  106. gcore/resources/waap/__init__.py +33 -0
  107. gcore/resources/waap/domains/__init__.py +33 -0
  108. gcore/resources/waap/domains/domains.py +515 -0
  109. gcore/resources/waap/domains/settings.py +271 -0
  110. gcore/resources/waap/waap.py +102 -0
  111. gcore/types/__init__.py +3 -0
  112. gcore/types/cloud/__init__.py +199 -0
  113. gcore/types/cloud/allowed_address_pairs.py +15 -0
  114. gcore/types/cloud/aws_iam_data.py +13 -0
  115. gcore/types/cloud/aws_iam_data_param.py +15 -0
  116. gcore/types/cloud/baremetal/__init__.py +13 -0
  117. gcore/types/cloud/baremetal/baremetal_fixed_address.py +30 -0
  118. gcore/types/cloud/baremetal/baremetal_floating_address.py +15 -0
  119. gcore/types/cloud/baremetal/baremetal_server.py +178 -0
  120. gcore/types/cloud/baremetal/flavor_list_params.py +35 -0
  121. gcore/types/cloud/baremetal/flavor_list_suitable_params.py +22 -0
  122. gcore/types/cloud/baremetal/image_list_params.py +33 -0
  123. gcore/types/cloud/baremetal/server_create_params.py +370 -0
  124. gcore/types/cloud/baremetal/server_list_params.py +114 -0
  125. gcore/types/cloud/baremetal/server_rebuild_params.py +23 -0
  126. gcore/types/cloud/baremetal_flavor.py +58 -0
  127. gcore/types/cloud/baremetal_flavor_list.py +16 -0
  128. gcore/types/cloud/billing_reservation.py +153 -0
  129. gcore/types/cloud/billing_reservation_list_params.py +59 -0
  130. gcore/types/cloud/blackhole_port.py +66 -0
  131. gcore/types/cloud/capacity.py +13 -0
  132. gcore/types/cloud/console.py +18 -0
  133. gcore/types/cloud/container_probe.py +36 -0
  134. gcore/types/cloud/container_probe_config.py +16 -0
  135. gcore/types/cloud/container_probe_config_create_param.py +18 -0
  136. gcore/types/cloud/container_probe_create_param.py +38 -0
  137. gcore/types/cloud/container_probe_exec.py +12 -0
  138. gcore/types/cloud/container_probe_exec_create_param.py +13 -0
  139. gcore/types/cloud/container_probe_http_get.py +26 -0
  140. gcore/types/cloud/container_probe_http_get_create_param.py +25 -0
  141. gcore/types/cloud/container_probe_tcp_socket.py +10 -0
  142. gcore/types/cloud/container_probe_tcp_socket_create_param.py +12 -0
  143. gcore/types/cloud/container_scale.py +25 -0
  144. gcore/types/cloud/container_scale_trigger_rate.py +13 -0
  145. gcore/types/cloud/container_scale_trigger_sqs.py +33 -0
  146. gcore/types/cloud/container_scale_trigger_threshold.py +10 -0
  147. gcore/types/cloud/container_scale_triggers.py +36 -0
  148. gcore/types/cloud/ddos_profile.py +33 -0
  149. gcore/types/cloud/ddos_profile_field.py +31 -0
  150. gcore/types/cloud/ddos_profile_option_list.py +15 -0
  151. gcore/types/cloud/ddos_profile_status.py +13 -0
  152. gcore/types/cloud/ddos_profile_template.py +18 -0
  153. gcore/types/cloud/ddos_profile_template_field.py +23 -0
  154. gcore/types/cloud/deploy_status.py +13 -0
  155. gcore/types/cloud/file_share.py +111 -0
  156. gcore/types/cloud/file_share_create_params.py +104 -0
  157. gcore/types/cloud/file_share_list_params.py +24 -0
  158. gcore/types/cloud/file_share_resize_params.py +18 -0
  159. gcore/types/cloud/file_share_update_params.py +18 -0
  160. gcore/types/cloud/file_shares/__init__.py +7 -0
  161. gcore/types/cloud/file_shares/access_rule.py +21 -0
  162. gcore/types/cloud/file_shares/access_rule_create_params.py +21 -0
  163. gcore/types/cloud/file_shares/access_rule_list.py +16 -0
  164. gcore/types/cloud/fixed_address.py +38 -0
  165. gcore/types/cloud/fixed_address_short.py +24 -0
  166. gcore/types/cloud/flavor_hardware_description.py +27 -0
  167. gcore/types/cloud/floating_address.py +15 -0
  168. gcore/types/cloud/floating_ip.py +77 -0
  169. gcore/types/cloud/floating_ip_assign_params.py +20 -0
  170. gcore/types/cloud/floating_ip_create_params.py +40 -0
  171. gcore/types/cloud/floating_ip_detailed.py +222 -0
  172. gcore/types/cloud/floating_ip_list_params.py +35 -0
  173. gcore/types/cloud/floating_ip_status.py +7 -0
  174. gcore/types/cloud/gpu_baremetal_cluster.py +116 -0
  175. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +155 -0
  176. gcore/types/cloud/gpu_baremetal_cluster_delete_params.py +28 -0
  177. gcore/types/cloud/gpu_baremetal_cluster_list_params.py +19 -0
  178. gcore/types/cloud/gpu_baremetal_cluster_rebuild_params.py +26 -0
  179. gcore/types/cloud/gpu_baremetal_cluster_resize_params.py +16 -0
  180. gcore/types/cloud/gpu_baremetal_cluster_server.py +200 -0
  181. gcore/types/cloud/gpu_baremetal_cluster_server_list.py +16 -0
  182. gcore/types/cloud/gpu_baremetal_clusters/__init__.py +9 -0
  183. gcore/types/cloud/gpu_baremetal_clusters/flavor_list_params.py +21 -0
  184. gcore/types/cloud/gpu_baremetal_clusters/image_upload_params.py +58 -0
  185. gcore/types/cloud/gpu_baremetal_clusters/server_attach_interface_params.py +253 -0
  186. gcore/types/cloud/gpu_baremetal_clusters/server_delete_params.py +21 -0
  187. gcore/types/cloud/gpu_baremetal_clusters/server_detach_interface_params.py +19 -0
  188. gcore/types/cloud/gpu_baremetal_flavor.py +133 -0
  189. gcore/types/cloud/gpu_baremetal_flavor_list.py +16 -0
  190. gcore/types/cloud/gpu_image.py +70 -0
  191. gcore/types/cloud/gpu_image_list.py +16 -0
  192. gcore/types/cloud/health_monitor.py +48 -0
  193. gcore/types/cloud/health_monitor_status.py +22 -0
  194. gcore/types/cloud/http_method.py +7 -0
  195. gcore/types/cloud/image.py +100 -0
  196. gcore/types/cloud/image_list.py +16 -0
  197. gcore/types/cloud/inference/__init__.py +25 -0
  198. gcore/types/cloud/inference/container.py +26 -0
  199. gcore/types/cloud/inference/deployment_create_params.py +222 -0
  200. gcore/types/cloud/inference/deployment_list_params.py +21 -0
  201. gcore/types/cloud/inference/deployment_update_params.py +215 -0
  202. gcore/types/cloud/inference/deployments/__init__.py +5 -0
  203. gcore/types/cloud/inference/deployments/log_list_params.py +28 -0
  204. gcore/types/cloud/inference/flavor_list_params.py +18 -0
  205. gcore/types/cloud/inference/inference.py +95 -0
  206. gcore/types/cloud/inference/inference_apikey_secret.py +15 -0
  207. gcore/types/cloud/inference/inference_flavor.py +34 -0
  208. gcore/types/cloud/inference/inference_log.py +21 -0
  209. gcore/types/cloud/inference/inference_registry_credential.py +19 -0
  210. gcore/types/cloud/inference/inference_registry_credential_full.py +22 -0
  211. gcore/types/cloud/inference/inference_secret.py +17 -0
  212. gcore/types/cloud/inference/mlcatalog_model_card.py +65 -0
  213. gcore/types/cloud/inference/mlcatalog_order_by_choices.py +7 -0
  214. gcore/types/cloud/inference/model_list_params.py +23 -0
  215. gcore/types/cloud/inference/registry_credential_create_params.py +24 -0
  216. gcore/types/cloud/inference/registry_credential_list_params.py +21 -0
  217. gcore/types/cloud/inference/registry_credential_replace_params.py +21 -0
  218. gcore/types/cloud/inference/secret_create_params.py +23 -0
  219. gcore/types/cloud/inference/secret_list_params.py +21 -0
  220. gcore/types/cloud/inference/secret_replace_params.py +20 -0
  221. gcore/types/cloud/inference_probes.py +19 -0
  222. gcore/types/cloud/ingress_opts_out.py +16 -0
  223. gcore/types/cloud/ingress_opts_param.py +18 -0
  224. gcore/types/cloud/instance.py +296 -0
  225. gcore/types/cloud/instance_action_params.py +32 -0
  226. gcore/types/cloud/instance_add_to_placement_group_params.py +16 -0
  227. gcore/types/cloud/instance_assign_security_group_params.py +28 -0
  228. gcore/types/cloud/instance_create_params.py +622 -0
  229. gcore/types/cloud/instance_delete_params.py +33 -0
  230. gcore/types/cloud/instance_get_console_params.py +16 -0
  231. gcore/types/cloud/instance_interface.py +40 -0
  232. gcore/types/cloud/instance_isolation.py +12 -0
  233. gcore/types/cloud/instance_list.py +16 -0
  234. gcore/types/cloud/instance_list_params.py +146 -0
  235. gcore/types/cloud/instance_metrics_time_unit.py +7 -0
  236. gcore/types/cloud/instance_resize_params.py +16 -0
  237. gcore/types/cloud/instance_unassign_security_group_params.py +28 -0
  238. gcore/types/cloud/instance_update_params.py +18 -0
  239. gcore/types/cloud/instances/__init__.py +19 -0
  240. gcore/types/cloud/instances/flavor_list_for_resize_params.py +16 -0
  241. gcore/types/cloud/instances/flavor_list_params.py +25 -0
  242. gcore/types/cloud/instances/flavor_list_suitable_params.py +56 -0
  243. gcore/types/cloud/instances/image_create_from_volume_params.py +53 -0
  244. gcore/types/cloud/instances/image_get_params.py +16 -0
  245. gcore/types/cloud/instances/image_list_params.py +33 -0
  246. gcore/types/cloud/instances/image_update_params.py +43 -0
  247. gcore/types/cloud/instances/image_upload_params.py +62 -0
  248. gcore/types/cloud/instances/instance_flavor.py +49 -0
  249. gcore/types/cloud/instances/instance_flavor_list.py +16 -0
  250. gcore/types/cloud/instances/interface_attach_params.py +253 -0
  251. gcore/types/cloud/instances/interface_detach_params.py +19 -0
  252. gcore/types/cloud/instances/metric_list_params.py +23 -0
  253. gcore/types/cloud/instances/metrics.py +52 -0
  254. gcore/types/cloud/instances/metrics_list.py +16 -0
  255. gcore/types/cloud/interface_ip_family.py +7 -0
  256. gcore/types/cloud/ip_assignment.py +13 -0
  257. gcore/types/cloud/ip_ranges.py +12 -0
  258. gcore/types/cloud/ip_version.py +7 -0
  259. gcore/types/cloud/laas_index_retention_policy.py +12 -0
  260. gcore/types/cloud/laas_index_retention_policy_param.py +13 -0
  261. gcore/types/cloud/lb_algorithm.py +7 -0
  262. gcore/types/cloud/lb_health_monitor_type.py +7 -0
  263. gcore/types/cloud/lb_listener_protocol.py +7 -0
  264. gcore/types/cloud/lb_pool_protocol.py +7 -0
  265. gcore/types/cloud/lb_session_persistence_type.py +7 -0
  266. gcore/types/cloud/listener_status.py +27 -0
  267. gcore/types/cloud/load_balancer.py +144 -0
  268. gcore/types/cloud/load_balancer_create_params.py +327 -0
  269. gcore/types/cloud/load_balancer_failover_params.py +16 -0
  270. gcore/types/cloud/load_balancer_flavor_detail.py +40 -0
  271. gcore/types/cloud/load_balancer_flavor_list.py +16 -0
  272. gcore/types/cloud/load_balancer_get_params.py +19 -0
  273. gcore/types/cloud/load_balancer_instance_role.py +7 -0
  274. gcore/types/cloud/load_balancer_l7_policy.py +86 -0
  275. gcore/types/cloud/load_balancer_l7_policy_list.py +16 -0
  276. gcore/types/cloud/load_balancer_l7_rule.py +72 -0
  277. gcore/types/cloud/load_balancer_l7_rule_list.py +16 -0
  278. gcore/types/cloud/load_balancer_list_params.py +53 -0
  279. gcore/types/cloud/load_balancer_listener_detail.py +97 -0
  280. gcore/types/cloud/load_balancer_listener_list.py +16 -0
  281. gcore/types/cloud/load_balancer_member_connectivity.py +7 -0
  282. gcore/types/cloud/load_balancer_metrics.py +32 -0
  283. gcore/types/cloud/load_balancer_metrics_list.py +16 -0
  284. gcore/types/cloud/load_balancer_operating_status.py +7 -0
  285. gcore/types/cloud/load_balancer_pool.py +87 -0
  286. gcore/types/cloud/load_balancer_pool_list.py +16 -0
  287. gcore/types/cloud/load_balancer_resize_params.py +16 -0
  288. gcore/types/cloud/load_balancer_statistics.py +22 -0
  289. gcore/types/cloud/load_balancer_status.py +38 -0
  290. gcore/types/cloud/load_balancer_status_list.py +16 -0
  291. gcore/types/cloud/load_balancer_update_params.py +43 -0
  292. gcore/types/cloud/load_balancers/__init__.py +15 -0
  293. gcore/types/cloud/load_balancers/flavor_list_params.py +16 -0
  294. gcore/types/cloud/load_balancers/l7_policies/__init__.py +6 -0
  295. gcore/types/cloud/load_balancers/l7_policies/rule_create_params.py +50 -0
  296. gcore/types/cloud/load_balancers/l7_policies/rule_replace_params.py +43 -0
  297. gcore/types/cloud/load_balancers/l7_policy_create_params.py +54 -0
  298. gcore/types/cloud/load_balancers/l7_policy_replace_params.py +51 -0
  299. gcore/types/cloud/load_balancers/listener_create_params.py +72 -0
  300. gcore/types/cloud/load_balancers/listener_get_params.py +16 -0
  301. gcore/types/cloud/load_balancers/listener_list_params.py +19 -0
  302. gcore/types/cloud/load_balancers/listener_update_params.py +55 -0
  303. gcore/types/cloud/load_balancers/metric_list_params.py +21 -0
  304. gcore/types/cloud/load_balancers/pool_create_params.py +141 -0
  305. gcore/types/cloud/load_balancers/pool_list_params.py +25 -0
  306. gcore/types/cloud/load_balancers/pool_update_params.py +139 -0
  307. gcore/types/cloud/load_balancers/pools/__init__.py +6 -0
  308. gcore/types/cloud/load_balancers/pools/health_monitor_create_params.py +49 -0
  309. gcore/types/cloud/load_balancers/pools/member_add_params.py +44 -0
  310. gcore/types/cloud/logging.py +22 -0
  311. gcore/types/cloud/member.py +47 -0
  312. gcore/types/cloud/member_status.py +24 -0
  313. gcore/types/cloud/network.py +79 -0
  314. gcore/types/cloud/network_create_params.py +36 -0
  315. gcore/types/cloud/network_details.py +80 -0
  316. gcore/types/cloud/network_interface.py +78 -0
  317. gcore/types/cloud/network_interface_list.py +16 -0
  318. gcore/types/cloud/network_list_params.py +41 -0
  319. gcore/types/cloud/network_update_params.py +18 -0
  320. gcore/types/cloud/networks/__init__.py +14 -0
  321. gcore/types/cloud/networks/router.py +83 -0
  322. gcore/types/cloud/networks/router_attach_subnet_params.py +24 -0
  323. gcore/types/cloud/networks/router_create_params.py +75 -0
  324. gcore/types/cloud/networks/router_detach_subnet_params.py +16 -0
  325. gcore/types/cloud/networks/router_list.py +16 -0
  326. gcore/types/cloud/networks/router_list_params.py +19 -0
  327. gcore/types/cloud/networks/router_update_params.py +45 -0
  328. gcore/types/cloud/networks/subnet_create_params.py +82 -0
  329. gcore/types/cloud/networks/subnet_list_params.py +58 -0
  330. gcore/types/cloud/networks/subnet_update_params.py +47 -0
  331. gcore/types/cloud/placement_group.py +41 -0
  332. gcore/types/cloud/placement_group_create_params.py +19 -0
  333. gcore/types/cloud/placement_group_list.py +16 -0
  334. gcore/types/cloud/pool_status.py +31 -0
  335. gcore/types/cloud/project.py +47 -0
  336. gcore/types/cloud/project_create_params.py +22 -0
  337. gcore/types/cloud/project_list_params.py +27 -0
  338. gcore/types/cloud/project_replace_params.py +18 -0
  339. gcore/types/cloud/provisioning_status.py +9 -0
  340. gcore/types/cloud/quota_get_all_response.py +340 -0
  341. gcore/types/cloud/quota_get_by_region_response.py +288 -0
  342. gcore/types/cloud/quota_get_global_response.py +51 -0
  343. gcore/types/cloud/quotas/__init__.py +8 -0
  344. gcore/types/cloud/quotas/request_create_params.py +193 -0
  345. gcore/types/cloud/quotas/request_get_response.py +205 -0
  346. gcore/types/cloud/quotas/request_list_params.py +22 -0
  347. gcore/types/cloud/quotas/request_list_response.py +205 -0
  348. gcore/types/cloud/region.py +101 -0
  349. gcore/types/cloud/region_capacity.py +16 -0
  350. gcore/types/cloud/region_capacity_list.py +16 -0
  351. gcore/types/cloud/region_get_params.py +18 -0
  352. gcore/types/cloud/region_list_params.py +31 -0
  353. gcore/types/cloud/registries/__init__.py +14 -0
  354. gcore/types/cloud/registries/registry_artifact.py +35 -0
  355. gcore/types/cloud/registries/registry_artifact_list.py +16 -0
  356. gcore/types/cloud/registries/registry_repository.py +30 -0
  357. gcore/types/cloud/registries/registry_repository_list.py +16 -0
  358. gcore/types/cloud/registries/registry_user.py +28 -0
  359. gcore/types/cloud/registries/registry_user_created.py +31 -0
  360. gcore/types/cloud/registries/registry_user_list.py +16 -0
  361. gcore/types/cloud/registries/user_create_multiple_params.py +36 -0
  362. gcore/types/cloud/registries/user_create_params.py +30 -0
  363. gcore/types/cloud/registries/user_update_params.py +21 -0
  364. gcore/types/cloud/registry.py +33 -0
  365. gcore/types/cloud/registry_create_params.py +24 -0
  366. gcore/types/cloud/registry_list.py +16 -0
  367. gcore/types/cloud/registry_resize_params.py +16 -0
  368. gcore/types/cloud/registry_tag.py +27 -0
  369. gcore/types/cloud/reserved_fixed_ip.py +98 -0
  370. gcore/types/cloud/reserved_fixed_ip_create_params.py +107 -0
  371. gcore/types/cloud/reserved_fixed_ip_list_params.py +47 -0
  372. gcore/types/cloud/reserved_fixed_ips/__init__.py +12 -0
  373. gcore/types/cloud/reserved_fixed_ips/candidate_port.py +26 -0
  374. gcore/types/cloud/reserved_fixed_ips/candidate_port_list.py +16 -0
  375. gcore/types/cloud/reserved_fixed_ips/connected_port.py +26 -0
  376. gcore/types/cloud/reserved_fixed_ips/connected_port_list.py +16 -0
  377. gcore/types/cloud/reserved_fixed_ips/ip_with_subnet.py +17 -0
  378. gcore/types/cloud/reserved_fixed_ips/vip_replace_connected_ports_params.py +17 -0
  379. gcore/types/cloud/reserved_fixed_ips/vip_toggle_params.py +16 -0
  380. gcore/types/cloud/reserved_fixed_ips/vip_update_connected_ports_params.py +17 -0
  381. gcore/types/cloud/route.py +16 -0
  382. gcore/types/cloud/secret.py +64 -0
  383. gcore/types/cloud/secret_create_params.py +66 -0
  384. gcore/types/cloud/secret_list_response.py +16 -0
  385. gcore/types/cloud/secret_upload_tls_certificate_params.py +39 -0
  386. gcore/types/cloud/security_group.py +45 -0
  387. gcore/types/cloud/security_group_copy_params.py +16 -0
  388. gcore/types/cloud/security_group_create_params.py +94 -0
  389. gcore/types/cloud/security_group_list_params.py +30 -0
  390. gcore/types/cloud/security_group_rule.py +83 -0
  391. gcore/types/cloud/security_group_update_params.py +83 -0
  392. gcore/types/cloud/security_groups/__init__.py +6 -0
  393. gcore/types/cloud/security_groups/rule_create_params.py +65 -0
  394. gcore/types/cloud/security_groups/rule_replace_params.py +72 -0
  395. gcore/types/cloud/session_persistence.py +22 -0
  396. gcore/types/cloud/ssh_key.py +39 -0
  397. gcore/types/cloud/ssh_key_create_params.py +31 -0
  398. gcore/types/cloud/ssh_key_created.py +53 -0
  399. gcore/types/cloud/ssh_key_list_params.py +21 -0
  400. gcore/types/cloud/ssh_key_update_params.py +15 -0
  401. gcore/types/cloud/subnet.py +87 -0
  402. gcore/types/cloud/tag.py +16 -0
  403. gcore/types/cloud/tag_update_map_param.py +10 -0
  404. gcore/types/cloud/task.py +191 -0
  405. gcore/types/cloud/task_acknowledge_all_params.py +16 -0
  406. gcore/types/cloud/task_id_list.py +12 -0
  407. gcore/types/cloud/task_list_params.py +104 -0
  408. gcore/types/cloud/users/__init__.py +9 -0
  409. gcore/types/cloud/users/role_assignment.py +33 -0
  410. gcore/types/cloud/users/role_assignment_create_params.py +22 -0
  411. gcore/types/cloud/users/role_assignment_list_params.py +25 -0
  412. gcore/types/cloud/users/role_assignment_update_delete.py +10 -0
  413. gcore/types/cloud/users/role_assignment_update_params.py +22 -0
  414. gcore/types/cloud/volume.py +141 -0
  415. gcore/types/cloud/volume_attach_to_instance_params.py +21 -0
  416. gcore/types/cloud/volume_change_type_params.py +18 -0
  417. gcore/types/cloud/volume_create_params.py +176 -0
  418. gcore/types/cloud/volume_delete_params.py +18 -0
  419. gcore/types/cloud/volume_detach_from_instance_params.py +18 -0
  420. gcore/types/cloud/volume_list_params.py +56 -0
  421. gcore/types/cloud/volume_resize_params.py +18 -0
  422. gcore/types/cloud/volume_update_params.py +18 -0
  423. gcore/types/waap/__init__.py +12 -0
  424. gcore/types/waap/domain_list_params.py +30 -0
  425. gcore/types/waap/domain_update_params.py +12 -0
  426. gcore/types/waap/domains/__init__.py +5 -0
  427. gcore/types/waap/domains/setting_update_params.py +41 -0
  428. gcore/types/waap/waap_api_urls.py +15 -0
  429. gcore/types/waap/waap_detailed_domain.py +37 -0
  430. gcore/types/waap/waap_domain_ddos_settings.py +31 -0
  431. gcore/types/waap/waap_domain_settings.py +15 -0
  432. gcore/types/waap/waap_domain_status.py +7 -0
  433. gcore/types/waap/waap_summary_domain.py +26 -0
  434. gcore-0.1.0.dist-info/METADATA +482 -0
  435. gcore-0.1.0.dist-info/RECORD +437 -0
  436. gcore-0.1.0.dist-info/WHEEL +4 -0
  437. gcore-0.1.0.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal
4
+
5
+ from ...._models import BaseModel
6
+
7
+ __all__ = ["BaremetalFloatingAddress"]
8
+
9
+
10
+ class BaremetalFloatingAddress(BaseModel):
11
+ addr: str
12
+ """Address"""
13
+
14
+ type: Literal["floating"]
15
+ """Type of the address"""
@@ -0,0 +1,178 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, List, Union, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal, TypeAlias
6
+
7
+ from ..tag import Tag
8
+ from ...._models import BaseModel
9
+ from ..ddos_profile import DDOSProfile
10
+ from ..blackhole_port import BlackholePort
11
+ from ..instance_isolation import InstanceIsolation
12
+ from .baremetal_fixed_address import BaremetalFixedAddress
13
+ from .baremetal_floating_address import BaremetalFloatingAddress
14
+
15
+ __all__ = ["BaremetalServer", "Address", "FixedIPAssignment", "Flavor", "FlavorHardwareDescription"]
16
+
17
+ Address: TypeAlias = Union[BaremetalFloatingAddress, BaremetalFixedAddress]
18
+
19
+
20
+ class FixedIPAssignment(BaseModel):
21
+ external: bool
22
+ """Is network external"""
23
+
24
+ ip_address: str
25
+ """Ip address"""
26
+
27
+ subnet_id: str
28
+ """Interface subnet id"""
29
+
30
+
31
+ class FlavorHardwareDescription(BaseModel):
32
+ cpu: str
33
+ """Human-readable CPU description"""
34
+
35
+ disk: str
36
+ """Human-readable disk description"""
37
+
38
+ license: str
39
+ """If the flavor is licensed, this field contains the license type"""
40
+
41
+ network: str
42
+ """Human-readable NIC description"""
43
+
44
+ ram: str
45
+ """Human-readable RAM description"""
46
+
47
+
48
+ class Flavor(BaseModel):
49
+ architecture: str
50
+ """CPU architecture"""
51
+
52
+ flavor_id: str
53
+ """Flavor ID is the same as name"""
54
+
55
+ flavor_name: str
56
+ """Flavor name"""
57
+
58
+ hardware_description: FlavorHardwareDescription
59
+ """Additional hardware description"""
60
+
61
+ os_type: str
62
+ """Operating system"""
63
+
64
+ ram: int
65
+ """RAM size in MiB"""
66
+
67
+ resource_class: str
68
+ """Flavor resource class for mapping to hardware capacity"""
69
+
70
+ vcpus: int
71
+ """Virtual CPU count. For bare metal flavors, it's a physical CPU count"""
72
+
73
+
74
+ class BaremetalServer(BaseModel):
75
+ id: str
76
+ """Bare metal server ID"""
77
+
78
+ addresses: Dict[str, List[Address]]
79
+ """Map of network_name to list of addresses in that network"""
80
+
81
+ blackhole_ports: List[BlackholePort]
82
+ """IP addresses of the instances that are blackholed by DDoS mitigation system"""
83
+
84
+ created_at: datetime
85
+ """Datetime when bare metal server was created"""
86
+
87
+ creator_task_id: Optional[str] = None
88
+ """Task that created this entity"""
89
+
90
+ ddos_profile: Optional[DDOSProfile] = None
91
+ """Bare metal advanced DDoS protection profile.
92
+
93
+ It is always `null` if query parameter `with_ddos=true` is not set.
94
+ """
95
+
96
+ fixed_ip_assignments: List[FixedIPAssignment]
97
+ """Fixed IP assigned to instance"""
98
+
99
+ flavor: Flavor
100
+ """Flavor details"""
101
+
102
+ instance_isolation: Optional[InstanceIsolation] = None
103
+ """Instance isolation information"""
104
+
105
+ name: str
106
+ """Bare metal server name"""
107
+
108
+ project_id: int
109
+ """Project ID"""
110
+
111
+ region: str
112
+ """Region name"""
113
+
114
+ region_id: int
115
+ """Region ID"""
116
+
117
+ ssh_key_name: Optional[str] = None
118
+ """SSH key assigned to bare metal server"""
119
+
120
+ status: Literal[
121
+ "ACTIVE",
122
+ "BUILD",
123
+ "DELETED",
124
+ "ERROR",
125
+ "HARD_REBOOT",
126
+ "MIGRATING",
127
+ "PASSWORD",
128
+ "PAUSED",
129
+ "REBOOT",
130
+ "REBUILD",
131
+ "RESCUE",
132
+ "RESIZE",
133
+ "REVERT_RESIZE",
134
+ "SHELVED",
135
+ "SHELVED_OFFLOADED",
136
+ "SHUTOFF",
137
+ "SOFT_DELETED",
138
+ "SUSPENDED",
139
+ "UNKNOWN",
140
+ "VERIFY_RESIZE",
141
+ ]
142
+ """Bare metal server status"""
143
+
144
+ tags: List[Tag]
145
+ """List of key-value tags associated with the resource.
146
+
147
+ A tag is a key-value pair that can be associated with a resource, enabling
148
+ efficient filtering and grouping for better organization and management. Some
149
+ tags are read-only and cannot be modified by the user. Tags are also integrated
150
+ with cost reports, allowing cost data to be filtered based on tag keys or
151
+ values.
152
+ """
153
+
154
+ task_id: Optional[str] = None
155
+ """The UUID of the active task that currently holds a lock on the resource.
156
+
157
+ This lock prevents concurrent modifications to ensure consistency. If `null`,
158
+ the resource is not locked.
159
+ """
160
+
161
+ task_state: Optional[str] = None
162
+ """Task state"""
163
+
164
+ vm_state: Literal[
165
+ "active",
166
+ "building",
167
+ "deleted",
168
+ "error",
169
+ "paused",
170
+ "rescued",
171
+ "resized",
172
+ "shelved",
173
+ "shelved_offloaded",
174
+ "soft-deleted",
175
+ "stopped",
176
+ "suspended",
177
+ ]
178
+ """Bare metal server state"""
@@ -0,0 +1,35 @@
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 TypedDict
6
+
7
+ __all__ = ["FlavorListParams"]
8
+
9
+
10
+ class FlavorListParams(TypedDict, total=False):
11
+ project_id: int
12
+
13
+ region_id: int
14
+
15
+ disabled: bool
16
+ """Flag for filtering disabled flavors in the region. Defaults to true"""
17
+
18
+ exclude_linux: bool
19
+ """Set to true to exclude flavors dedicated to linux images. Default False"""
20
+
21
+ exclude_windows: bool
22
+ """Set to true to exclude flavors dedicated to windows images. Default False"""
23
+
24
+ include_capacity: bool
25
+ """Set to true if the response should include flavor capacity"""
26
+
27
+ include_prices: bool
28
+ """Set to true if the response should include flavor prices"""
29
+
30
+ include_reservation_stock: bool
31
+ """Optional.
32
+
33
+ Set to true if flavor listing should include count of reserved resources in
34
+ stock.
35
+ """
@@ -0,0 +1,22 @@
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 TypedDict
6
+
7
+ __all__ = ["FlavorListSuitableParams"]
8
+
9
+
10
+ class FlavorListSuitableParams(TypedDict, total=False):
11
+ project_id: int
12
+
13
+ region_id: int
14
+
15
+ include_prices: bool
16
+ """Set to true if flavor listing should include flavor prices"""
17
+
18
+ apptemplate_id: str
19
+ """Apptemplate ID"""
20
+
21
+ image_id: str
22
+ """Image ID"""
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List
6
+ from typing_extensions import Literal, TypedDict
7
+
8
+ __all__ = ["ImageListParams"]
9
+
10
+
11
+ class ImageListParams(TypedDict, total=False):
12
+ project_id: int
13
+
14
+ region_id: int
15
+
16
+ include_prices: bool
17
+ """Show price"""
18
+
19
+ private: str
20
+ """Any value to show private images"""
21
+
22
+ tag_key: List[str]
23
+ """Filter by tag keys."""
24
+
25
+ tag_key_value: str
26
+ """Filter by tag key-value pairs.
27
+
28
+ Must be a valid JSON string. 'curl -G --data-urlencode 'tag_key_value={"key":
29
+ "value"}' --url 'http://localhost:1111/v1/images/1/1'"
30
+ """
31
+
32
+ visibility: Literal["private", "public", "shared"]
33
+ """Image visibility. Globally visible images are public"""
@@ -0,0 +1,370 @@
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
+ "ServerCreateParams",
13
+ "Interface",
14
+ "InterfaceCreateBareMetalExternalInterfaceSerializer",
15
+ "InterfaceCreateBareMetalSubnetInterfaceSerializer",
16
+ "InterfaceCreateBareMetalSubnetInterfaceSerializerFloatingIP",
17
+ "InterfaceCreateBareMetalSubnetInterfaceSerializerFloatingIPNewInstanceFloatingIPInterfaceSerializer",
18
+ "InterfaceCreateBareMetalSubnetInterfaceSerializerFloatingIPExistingInstanceFloatingIPInterfaceSerializer",
19
+ "InterfaceCreateBareMetalAnySubnetInterfaceSerializer",
20
+ "InterfaceCreateBareMetalAnySubnetInterfaceSerializerFloatingIP",
21
+ "InterfaceCreateBareMetalAnySubnetInterfaceSerializerFloatingIPNewInstanceFloatingIPInterfaceSerializer",
22
+ "InterfaceCreateBareMetalAnySubnetInterfaceSerializerFloatingIPExistingInstanceFloatingIPInterfaceSerializer",
23
+ "InterfaceCreateBareMetalReservedFixedIPInterfaceSerializer",
24
+ "InterfaceCreateBareMetalReservedFixedIPInterfaceSerializerFloatingIP",
25
+ "InterfaceCreateBareMetalReservedFixedIPInterfaceSerializerFloatingIPNewInstanceFloatingIPInterfaceSerializer",
26
+ "InterfaceCreateBareMetalReservedFixedIPInterfaceSerializerFloatingIPExistingInstanceFloatingIPInterfaceSerializer",
27
+ "DDOSProfile",
28
+ "DDOSProfileField",
29
+ ]
30
+
31
+
32
+ class ServerCreateParams(TypedDict, total=False):
33
+ project_id: int
34
+ """Project ID"""
35
+
36
+ region_id: int
37
+ """Region ID"""
38
+
39
+ flavor: Required[str]
40
+ """The flavor of the instance."""
41
+
42
+ interfaces: Required[Iterable[Interface]]
43
+ """A list of network interfaces for the server.
44
+
45
+ You can create one or more interfaces - private, public, or both.
46
+ """
47
+
48
+ app_config: Optional[object]
49
+ """
50
+ Parameters for the application template if creating the instance from an
51
+ `apptemplate`.
52
+ """
53
+
54
+ apptemplate_id: str
55
+ """Apptemplate ID. Either `image_id` or `apptemplate_id` is required."""
56
+
57
+ ddos_profile: DDOSProfile
58
+ """Enable advanced DDoS protection for the server"""
59
+
60
+ image_id: str
61
+ """Image ID. Either `image_id` or `apptemplate_id` is required."""
62
+
63
+ name: str
64
+ """Server name."""
65
+
66
+ name_template: str
67
+ """
68
+ If you want server names to be automatically generated based on IP addresses,
69
+ you can provide a name template instead of specifying the name manually. The
70
+ template should include a placeholder that will be replaced during provisioning.
71
+ Supported placeholders are: `{ip_octets}` (last 3 octets of the IP),
72
+ `{two_ip_octets}`, and `{one_ip_octet}`.
73
+ """
74
+
75
+ password: str
76
+ """For Linux instances, 'username' and 'password' are used to create a new user.
77
+
78
+ When only 'password' is provided, it is set as the password for the default user
79
+ of the image. For Windows instances, 'username' cannot be specified. Use the
80
+ 'password' field to set the password for the 'Admin' user on Windows. Use the
81
+ 'user_data' field to provide a script to create new users on Windows. The
82
+ password of the Admin user cannot be updated via 'user_data'.
83
+ """
84
+
85
+ ssh_key_name: Optional[str]
86
+ """
87
+ Specifies the name of the SSH keypair, created via the
88
+ <a href="#operation/SSHKeyCollectionViewSet.post">/v1/ssh_keys endpoint</a>.
89
+ """
90
+
91
+ tags: TagUpdateMapParam
92
+ """Key-value tags to associate with the resource.
93
+
94
+ A tag is a key-value pair that can be associated with a resource, enabling
95
+ efficient filtering and grouping for better organization and management. Some
96
+ tags are read-only and cannot be modified by the user. Tags are also integrated
97
+ with cost reports, allowing cost data to be filtered based on tag keys or
98
+ values.
99
+ """
100
+
101
+ user_data: str
102
+ """String in base64 format.
103
+
104
+ For Linux instances, 'user_data' is ignored when 'password' field is provided.
105
+ For Windows instances, Admin user password is set by 'password' field and cannot
106
+ be updated via 'user_data'. Examples of the user_data:
107
+ https://cloudinit.readthedocs.io/en/latest/topics/examples.html
108
+ """
109
+
110
+ username: str
111
+ """For Linux instances, 'username' and 'password' are used to create a new user.
112
+
113
+ For Windows instances, 'username' cannot be specified. Use 'password' field to
114
+ set the password for the 'Admin' user on Windows.
115
+ """
116
+
117
+
118
+ class InterfaceCreateBareMetalExternalInterfaceSerializer(TypedDict, total=False):
119
+ type: Required[Literal["external"]]
120
+ """A public IP address will be assigned to the instance."""
121
+
122
+ interface_name: str
123
+ """Interface name.
124
+
125
+ Defaults to `null` and is returned as `null` in the API response if not set.
126
+ """
127
+
128
+ ip_family: Optional[InterfaceIPFamily]
129
+ """Specify `ipv4`, `ipv6`, or `dual` to enable both."""
130
+
131
+ port_group: int
132
+ """Specifies the trunk group to which this interface belongs.
133
+
134
+ Applicable only for bare metal servers. Each unique port group is mapped to a
135
+ separate trunk port. Use this to control how interfaces are grouped across
136
+ trunks.
137
+ """
138
+
139
+
140
+ class InterfaceCreateBareMetalSubnetInterfaceSerializerFloatingIPNewInstanceFloatingIPInterfaceSerializer(
141
+ TypedDict, total=False
142
+ ):
143
+ source: Required[Literal["new"]]
144
+ """A new floating IP will be created and attached to the instance.
145
+
146
+ A floating IP is a public IP that makes the instance accessible from the
147
+ internet, even if it only has a private IP. It works like SNAT, allowing
148
+ outgoing and incoming traffic.
149
+ """
150
+
151
+
152
+ class InterfaceCreateBareMetalSubnetInterfaceSerializerFloatingIPExistingInstanceFloatingIPInterfaceSerializer(
153
+ TypedDict, total=False
154
+ ):
155
+ existing_floating_id: Required[str]
156
+ """
157
+ An existing available floating IP id must be specified if the source is set to
158
+ `existing`
159
+ """
160
+
161
+ source: Required[Literal["existing"]]
162
+ """An existing available floating IP will be attached to the instance.
163
+
164
+ A floating IP is a public IP that makes the instance accessible from the
165
+ internet, even if it only has a private IP. It works like SNAT, allowing
166
+ outgoing and incoming traffic.
167
+ """
168
+
169
+
170
+ InterfaceCreateBareMetalSubnetInterfaceSerializerFloatingIP: TypeAlias = Union[
171
+ InterfaceCreateBareMetalSubnetInterfaceSerializerFloatingIPNewInstanceFloatingIPInterfaceSerializer,
172
+ InterfaceCreateBareMetalSubnetInterfaceSerializerFloatingIPExistingInstanceFloatingIPInterfaceSerializer,
173
+ ]
174
+
175
+
176
+ class InterfaceCreateBareMetalSubnetInterfaceSerializer(TypedDict, total=False):
177
+ network_id: Required[str]
178
+ """The network where the instance will be connected."""
179
+
180
+ subnet_id: Required[str]
181
+ """The instance will get an IP address from this subnet."""
182
+
183
+ type: Required[Literal["subnet"]]
184
+ """The instance will get an IP address from the selected network.
185
+
186
+ If you choose to add a floating IP, the instance will be reachable from the
187
+ internet. Otherwise, it will only have a private IP within the network.
188
+ """
189
+
190
+ floating_ip: InterfaceCreateBareMetalSubnetInterfaceSerializerFloatingIP
191
+ """Allows the instance to have a public IP that can be reached from the internet."""
192
+
193
+ interface_name: str
194
+ """Interface name.
195
+
196
+ Defaults to `null` and is returned as `null` in the API response if not set.
197
+ """
198
+
199
+ port_group: int
200
+ """Specifies the trunk group to which this interface belongs.
201
+
202
+ Applicable only for bare metal servers. Each unique port group is mapped to a
203
+ separate trunk port. Use this to control how interfaces are grouped across
204
+ trunks.
205
+ """
206
+
207
+
208
+ class InterfaceCreateBareMetalAnySubnetInterfaceSerializerFloatingIPNewInstanceFloatingIPInterfaceSerializer(
209
+ TypedDict, total=False
210
+ ):
211
+ source: Required[Literal["new"]]
212
+ """A new floating IP will be created and attached to the instance.
213
+
214
+ A floating IP is a public IP that makes the instance accessible from the
215
+ internet, even if it only has a private IP. It works like SNAT, allowing
216
+ outgoing and incoming traffic.
217
+ """
218
+
219
+
220
+ class InterfaceCreateBareMetalAnySubnetInterfaceSerializerFloatingIPExistingInstanceFloatingIPInterfaceSerializer(
221
+ TypedDict, total=False
222
+ ):
223
+ existing_floating_id: Required[str]
224
+ """
225
+ An existing available floating IP id must be specified if the source is set to
226
+ `existing`
227
+ """
228
+
229
+ source: Required[Literal["existing"]]
230
+ """An existing available floating IP will be attached to the instance.
231
+
232
+ A floating IP is a public IP that makes the instance accessible from the
233
+ internet, even if it only has a private IP. It works like SNAT, allowing
234
+ outgoing and incoming traffic.
235
+ """
236
+
237
+
238
+ InterfaceCreateBareMetalAnySubnetInterfaceSerializerFloatingIP: TypeAlias = Union[
239
+ InterfaceCreateBareMetalAnySubnetInterfaceSerializerFloatingIPNewInstanceFloatingIPInterfaceSerializer,
240
+ InterfaceCreateBareMetalAnySubnetInterfaceSerializerFloatingIPExistingInstanceFloatingIPInterfaceSerializer,
241
+ ]
242
+
243
+
244
+ class InterfaceCreateBareMetalAnySubnetInterfaceSerializer(TypedDict, total=False):
245
+ network_id: Required[str]
246
+ """The network where the instance will be connected."""
247
+
248
+ type: Required[Literal["any_subnet"]]
249
+ """Instance will be attached to a subnet with the largest count of free IPs."""
250
+
251
+ floating_ip: InterfaceCreateBareMetalAnySubnetInterfaceSerializerFloatingIP
252
+ """Allows the instance to have a public IP that can be reached from the internet."""
253
+
254
+ interface_name: str
255
+ """Interface name.
256
+
257
+ Defaults to `null` and is returned as `null` in the API response if not set.
258
+ """
259
+
260
+ ip_address: str
261
+ """You can specify a specific IP address from your subnet."""
262
+
263
+ ip_family: Optional[InterfaceIPFamily]
264
+ """Specify `ipv4`, `ipv6`, or `dual` to enable both."""
265
+
266
+ port_group: int
267
+ """Specifies the trunk group to which this interface belongs.
268
+
269
+ Applicable only for bare metal servers. Each unique port group is mapped to a
270
+ separate trunk port. Use this to control how interfaces are grouped across
271
+ trunks.
272
+ """
273
+
274
+
275
+ class InterfaceCreateBareMetalReservedFixedIPInterfaceSerializerFloatingIPNewInstanceFloatingIPInterfaceSerializer(
276
+ TypedDict, total=False
277
+ ):
278
+ source: Required[Literal["new"]]
279
+ """A new floating IP will be created and attached to the instance.
280
+
281
+ A floating IP is a public IP that makes the instance accessible from the
282
+ internet, even if it only has a private IP. It works like SNAT, allowing
283
+ outgoing and incoming traffic.
284
+ """
285
+
286
+
287
+ class InterfaceCreateBareMetalReservedFixedIPInterfaceSerializerFloatingIPExistingInstanceFloatingIPInterfaceSerializer(
288
+ TypedDict, total=False
289
+ ):
290
+ existing_floating_id: Required[str]
291
+ """
292
+ An existing available floating IP id must be specified if the source is set to
293
+ `existing`
294
+ """
295
+
296
+ source: Required[Literal["existing"]]
297
+ """An existing available floating IP will be attached to the instance.
298
+
299
+ A floating IP is a public IP that makes the instance accessible from the
300
+ internet, even if it only has a private IP. It works like SNAT, allowing
301
+ outgoing and incoming traffic.
302
+ """
303
+
304
+
305
+ InterfaceCreateBareMetalReservedFixedIPInterfaceSerializerFloatingIP: TypeAlias = Union[
306
+ InterfaceCreateBareMetalReservedFixedIPInterfaceSerializerFloatingIPNewInstanceFloatingIPInterfaceSerializer,
307
+ InterfaceCreateBareMetalReservedFixedIPInterfaceSerializerFloatingIPExistingInstanceFloatingIPInterfaceSerializer,
308
+ ]
309
+
310
+
311
+ class InterfaceCreateBareMetalReservedFixedIPInterfaceSerializer(TypedDict, total=False):
312
+ port_id: Required[str]
313
+ """Network ID the subnet belongs to. Port will be plugged in this network."""
314
+
315
+ type: Required[Literal["reserved_fixed_ip"]]
316
+ """An existing available reserved fixed IP will be attached to the instance.
317
+
318
+ If the reserved IP is not public and you choose to add a floating IP, the
319
+ instance will be accessible from the internet.
320
+ """
321
+
322
+ floating_ip: InterfaceCreateBareMetalReservedFixedIPInterfaceSerializerFloatingIP
323
+ """Allows the instance to have a public IP that can be reached from the internet."""
324
+
325
+ interface_name: str
326
+ """Interface name.
327
+
328
+ Defaults to `null` and is returned as `null` in the API response if not set.
329
+ """
330
+
331
+ port_group: int
332
+ """Specifies the trunk group to which this interface belongs.
333
+
334
+ Applicable only for bare metal servers. Each unique port group is mapped to a
335
+ separate trunk port. Use this to control how interfaces are grouped across
336
+ trunks.
337
+ """
338
+
339
+
340
+ Interface: TypeAlias = Union[
341
+ InterfaceCreateBareMetalExternalInterfaceSerializer,
342
+ InterfaceCreateBareMetalSubnetInterfaceSerializer,
343
+ InterfaceCreateBareMetalAnySubnetInterfaceSerializer,
344
+ InterfaceCreateBareMetalReservedFixedIPInterfaceSerializer,
345
+ ]
346
+
347
+
348
+ class DDOSProfileField(TypedDict, total=False):
349
+ base_field: Optional[int]
350
+ """ID of DDoS profile field"""
351
+
352
+ field_name: Optional[str]
353
+ """Name of DDoS profile field"""
354
+
355
+ field_value: Union[Iterable[object], int, str, None]
356
+ """Complex value. Only one of 'value' or 'field_value' must be specified."""
357
+
358
+ value: Optional[str]
359
+ """Basic type value. Only one of 'value' or 'field_value' must be specified."""
360
+
361
+
362
+ class DDOSProfile(TypedDict, total=False):
363
+ profile_template: Required[int]
364
+ """DDoS profile template ID"""
365
+
366
+ fields: Optional[Iterable[DDOSProfileField]]
367
+ """DDoS profile parameters"""
368
+
369
+ profile_template_name: Optional[str]
370
+ """DDoS profile template name"""