gcore 0.2.0__py3-none-any.whl → 0.4.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 (315) hide show
  1. gcore/__init__.py +2 -1
  2. gcore/_base_client.py +44 -2
  3. gcore/_client.py +9 -0
  4. gcore/_models.py +2 -0
  5. gcore/_types.py +2 -0
  6. gcore/_version.py +1 -1
  7. gcore/pagination.py +61 -1
  8. gcore/resources/__init__.py +14 -0
  9. gcore/resources/cloud/baremetal/flavors.py +11 -137
  10. gcore/resources/cloud/baremetal/images.py +10 -12
  11. gcore/resources/cloud/baremetal/servers.py +75 -78
  12. gcore/resources/cloud/billing_reservations.py +2 -2
  13. gcore/resources/cloud/file_shares/file_shares.py +7 -8
  14. gcore/resources/cloud/floating_ips.py +9 -14
  15. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +39 -28
  16. gcore/resources/cloud/gpu_baremetal_clusters/images.py +11 -12
  17. gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py +2 -2
  18. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +12 -8
  19. gcore/resources/cloud/inference/deployments/deployments.py +16 -8
  20. gcore/resources/cloud/inference/registry_credentials.py +2 -2
  21. gcore/resources/cloud/inference/secrets.py +8 -8
  22. gcore/resources/cloud/instances/flavors.py +9 -233
  23. gcore/resources/cloud/instances/images.py +47 -37
  24. gcore/resources/cloud/instances/instances.py +107 -100
  25. gcore/resources/cloud/instances/interfaces.py +6 -6
  26. gcore/resources/cloud/ip_ranges.py +34 -2
  27. gcore/resources/cloud/load_balancers/flavors.py +2 -2
  28. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +30 -22
  29. gcore/resources/cloud/load_balancers/listeners.py +31 -22
  30. gcore/resources/cloud/load_balancers/load_balancers.py +99 -43
  31. gcore/resources/cloud/load_balancers/metrics.py +2 -2
  32. gcore/resources/cloud/load_balancers/pools/health_monitors.py +2 -2
  33. gcore/resources/cloud/load_balancers/pools/members.py +12 -8
  34. gcore/resources/cloud/networks/networks.py +83 -19
  35. gcore/resources/cloud/networks/routers.py +18 -18
  36. gcore/resources/cloud/networks/subnets.py +55 -15
  37. gcore/resources/cloud/projects.py +38 -24
  38. gcore/resources/cloud/quotas/quotas.py +6 -6
  39. gcore/resources/cloud/quotas/requests.py +8 -8
  40. gcore/resources/cloud/registries/artifacts.py +4 -4
  41. gcore/resources/cloud/registries/registries.py +14 -20
  42. gcore/resources/cloud/registries/repositories.py +4 -4
  43. gcore/resources/cloud/registries/tags.py +2 -2
  44. gcore/resources/cloud/registries/users.py +25 -32
  45. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +26 -26
  46. gcore/resources/cloud/reserved_fixed_ips/vip.py +10 -10
  47. gcore/resources/cloud/security_groups/rules.py +6 -6
  48. gcore/resources/cloud/security_groups/security_groups.py +70 -31
  49. gcore/resources/cloud/ssh_keys.py +2 -2
  50. gcore/resources/cloud/tasks.py +102 -94
  51. gcore/resources/cloud/users/role_assignments.py +16 -18
  52. gcore/resources/cloud/volumes.py +155 -65
  53. gcore/resources/iam/__init__.py +47 -0
  54. gcore/resources/iam/api_tokens.py +521 -0
  55. gcore/resources/iam/iam.py +199 -0
  56. gcore/resources/iam/users.py +642 -0
  57. gcore/resources/waap/__init__.py +84 -0
  58. gcore/resources/waap/advanced_rules.py +135 -0
  59. gcore/resources/waap/custom_page_sets.py +805 -0
  60. gcore/resources/waap/domains/__init__.py +140 -0
  61. gcore/resources/waap/domains/advanced_rules.py +876 -0
  62. gcore/resources/waap/domains/analytics/__init__.py +33 -0
  63. gcore/resources/waap/domains/analytics/analytics.py +676 -0
  64. gcore/resources/waap/domains/analytics/requests.py +378 -0
  65. gcore/resources/waap/domains/api_discovery/__init__.py +33 -0
  66. gcore/resources/waap/domains/api_discovery/api_discovery.py +530 -0
  67. gcore/resources/waap/domains/api_discovery/scan_results.py +352 -0
  68. gcore/resources/waap/domains/api_path_groups.py +163 -0
  69. gcore/resources/waap/domains/api_paths.py +771 -0
  70. gcore/resources/waap/domains/custom_rules.py +889 -0
  71. gcore/resources/waap/domains/domains.py +399 -0
  72. gcore/resources/waap/domains/firewall_rules.py +884 -0
  73. gcore/resources/waap/domains/insight_silences.py +689 -0
  74. gcore/resources/waap/domains/insights.py +425 -0
  75. gcore/resources/waap/domains/policies.py +173 -0
  76. gcore/resources/waap/domains/settings.py +5 -5
  77. gcore/resources/waap/ip_info.py +1017 -0
  78. gcore/resources/waap/organizations.py +217 -0
  79. gcore/resources/waap/statistics.py +225 -0
  80. gcore/resources/waap/tags.py +233 -0
  81. gcore/resources/waap/waap.py +257 -0
  82. gcore/types/cloud/allowed_address_pairs.py +2 -2
  83. gcore/types/cloud/baremetal/__init__.py +0 -1
  84. gcore/types/cloud/baremetal/baremetal_server.py +1 -1
  85. gcore/types/cloud/baremetal/image_list_params.py +1 -5
  86. gcore/types/cloud/baremetal/server_create_params.py +13 -17
  87. gcore/types/cloud/baremetal/server_list_params.py +8 -12
  88. gcore/types/cloud/baremetal/server_rebuild_params.py +1 -1
  89. gcore/types/cloud/baremetal_flavor.py +3 -3
  90. gcore/types/cloud/container_probe_config.py +1 -1
  91. gcore/types/cloud/container_probe_config_create_param.py +1 -1
  92. gcore/types/cloud/container_scale_triggers.py +2 -2
  93. gcore/types/cloud/ddos_profile.py +9 -3
  94. gcore/types/cloud/file_share_create_params.py +3 -5
  95. gcore/types/cloud/floating_ip_create_params.py +2 -4
  96. gcore/types/cloud/floating_ip_detailed.py +1 -1
  97. gcore/types/cloud/floating_ip_list_params.py +2 -6
  98. gcore/types/cloud/gpu_baremetal_cluster.py +1 -1
  99. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +4 -5
  100. gcore/types/cloud/gpu_baremetal_cluster_delete_params.py +1 -1
  101. gcore/types/cloud/gpu_baremetal_cluster_rebuild_params.py +1 -1
  102. gcore/types/cloud/gpu_baremetal_cluster_server.py +1 -1
  103. gcore/types/cloud/gpu_baremetal_clusters/image_upload_params.py +3 -5
  104. gcore/types/cloud/gpu_baremetal_clusters/server_attach_interface_params.py +10 -10
  105. gcore/types/cloud/gpu_baremetal_flavor.py +3 -3
  106. gcore/types/cloud/health_monitor.py +6 -1
  107. gcore/types/cloud/image.py +1 -1
  108. gcore/types/cloud/inference/deployment_create_params.py +4 -4
  109. gcore/types/cloud/inference/deployment_update_params.py +6 -6
  110. gcore/types/cloud/inference/inference.py +2 -4
  111. gcore/types/cloud/instance.py +1 -1
  112. gcore/types/cloud/instance_create_params.py +15 -18
  113. gcore/types/cloud/instance_list_params.py +8 -12
  114. gcore/types/cloud/instances/__init__.py +0 -2
  115. gcore/types/cloud/instances/image_create_from_volume_params.py +2 -4
  116. gcore/types/cloud/instances/image_list_params.py +1 -5
  117. gcore/types/cloud/instances/image_upload_params.py +2 -4
  118. gcore/types/cloud/instances/instance_flavor.py +3 -3
  119. gcore/types/cloud/instances/interface_attach_params.py +10 -10
  120. gcore/types/cloud/load_balancer_create_params.py +25 -19
  121. gcore/types/cloud/load_balancer_flavor_detail.py +3 -3
  122. gcore/types/cloud/load_balancer_l7_policy.py +5 -5
  123. gcore/types/cloud/load_balancer_list_params.py +5 -9
  124. gcore/types/cloud/load_balancer_listener_detail.py +4 -4
  125. gcore/types/cloud/load_balancer_update_params.py +24 -0
  126. gcore/types/cloud/load_balancers/l7_policy_create_params.py +5 -5
  127. gcore/types/cloud/load_balancers/l7_policy_replace_params.py +5 -5
  128. gcore/types/cloud/load_balancers/listener_create_params.py +4 -4
  129. gcore/types/cloud/load_balancers/listener_update_params.py +3 -3
  130. gcore/types/cloud/load_balancers/pool_create_params.py +10 -5
  131. gcore/types/cloud/load_balancers/pool_update_params.py +10 -5
  132. gcore/types/cloud/load_balancers/pools/member_add_params.py +9 -4
  133. gcore/types/cloud/member.py +8 -3
  134. gcore/types/cloud/network.py +2 -2
  135. gcore/types/cloud/network_create_params.py +2 -3
  136. gcore/types/cloud/network_details.py +2 -2
  137. gcore/types/cloud/network_list_params.py +5 -6
  138. gcore/types/cloud/network_update_params.py +28 -2
  139. gcore/types/cloud/networks/router_list_params.py +2 -2
  140. gcore/types/cloud/networks/subnet_create_params.py +3 -4
  141. gcore/types/cloud/networks/subnet_list_params.py +2 -6
  142. gcore/types/cloud/networks/subnet_update_params.py +25 -0
  143. gcore/types/cloud/region.py +4 -4
  144. gcore/types/cloud/registries/__init__.py +1 -0
  145. gcore/types/cloud/registries/user_create_multiple_params.py +3 -5
  146. gcore/types/cloud/registries/user_create_params.py +3 -5
  147. gcore/types/cloud/registries/user_refresh_secret_response.py +31 -0
  148. gcore/types/cloud/registry_create_params.py +3 -5
  149. gcore/types/cloud/reserved_fixed_ip_create_params.py +2 -2
  150. gcore/types/cloud/reserved_fixed_ip_list_params.py +3 -3
  151. gcore/types/cloud/security_group_list_params.py +3 -7
  152. gcore/types/cloud/security_group_update_params.py +25 -0
  153. gcore/types/cloud/session_persistence.py +1 -1
  154. gcore/types/cloud/ssh_key_created.py +3 -6
  155. gcore/types/cloud/tag_update_map_param.py +2 -2
  156. gcore/types/cloud/task.py +1 -1
  157. gcore/types/cloud/task_list_params.py +49 -45
  158. gcore/types/cloud/users/role_assignment_create_params.py +1 -1
  159. gcore/types/cloud/users/role_assignment_update_params.py +1 -1
  160. gcore/types/cloud/volume_create_params.py +6 -6
  161. gcore/types/cloud/volume_list_params.py +3 -7
  162. gcore/types/cloud/volume_update_params.py +29 -3
  163. gcore/types/iam/__init__.py +17 -0
  164. gcore/types/iam/account_overview.py +488 -0
  165. gcore/types/iam/api_token.py +78 -0
  166. gcore/types/iam/api_token_create.py +15 -0
  167. gcore/types/iam/api_token_create_params.py +42 -0
  168. gcore/types/iam/api_token_list.py +81 -0
  169. gcore/types/iam/api_token_list_params.py +41 -0
  170. gcore/types/iam/user.py +86 -0
  171. gcore/types/iam/user_detailed.py +104 -0
  172. gcore/types/iam/user_invite.py +15 -0
  173. gcore/types/iam/user_invite_params.py +37 -0
  174. gcore/types/iam/user_list_params.py +15 -0
  175. gcore/types/iam/user_update.py +104 -0
  176. gcore/types/iam/user_update_params.py +52 -0
  177. gcore/types/waap/__init__.py +97 -2
  178. gcore/types/waap/custom_page_set_create_params.py +35 -0
  179. gcore/types/waap/custom_page_set_list_params.py +25 -0
  180. gcore/types/waap/custom_page_set_preview_params.py +34 -0
  181. gcore/types/waap/custom_page_set_update_params.py +35 -0
  182. gcore/types/waap/domain_list_rule_sets_response.py +10 -0
  183. gcore/types/waap/domains/__init__.py +42 -0
  184. gcore/types/waap/domains/advanced_rule_create_params.py +80 -0
  185. gcore/types/waap/domains/advanced_rule_list_params.py +58 -0
  186. gcore/types/waap/domains/advanced_rule_update_params.py +83 -0
  187. gcore/types/waap/domains/analytics/__init__.py +5 -0
  188. gcore/types/waap/domains/analytics/request_list_params.py +53 -0
  189. gcore/types/waap/domains/analytics_get_event_statistics_params.py +34 -0
  190. gcore/types/waap/domains/analytics_list_ddos_attacks_params.py +28 -0
  191. gcore/types/waap/domains/analytics_list_ddos_info_params.py +31 -0
  192. gcore/types/waap/domains/analytics_list_event_traffic_params.py +26 -0
  193. gcore/types/waap/domains/analytics_list_event_traffic_response.py +10 -0
  194. gcore/types/waap/domains/api_discovery/__init__.py +7 -0
  195. gcore/types/waap/domains/api_discovery/scan_result_get_response.py +29 -0
  196. gcore/types/waap/domains/api_discovery/scan_result_list_params.py +41 -0
  197. gcore/types/waap/domains/api_discovery/scan_result_list_response.py +29 -0
  198. gcore/types/waap/domains/api_discovery_get_settings_response.py +36 -0
  199. gcore/types/waap/domains/api_discovery_scan_openapi_response.py +10 -0
  200. gcore/types/waap/domains/api_discovery_update_settings_params.py +34 -0
  201. gcore/types/waap/domains/api_discovery_update_settings_response.py +36 -0
  202. gcore/types/waap/domains/api_discovery_upload_openapi_params.py +19 -0
  203. gcore/types/waap/domains/api_discovery_upload_openapi_response.py +10 -0
  204. gcore/types/waap/domains/api_path_create_params.py +31 -0
  205. gcore/types/waap/domains/api_path_create_response.py +50 -0
  206. gcore/types/waap/domains/api_path_get_response.py +50 -0
  207. gcore/types/waap/domains/api_path_group_list_response.py +12 -0
  208. gcore/types/waap/domains/api_path_list_params.py +62 -0
  209. gcore/types/waap/domains/api_path_list_response.py +50 -0
  210. gcore/types/waap/domains/api_path_update_params.py +29 -0
  211. gcore/types/waap/domains/custom_rule_create_params.py +372 -0
  212. gcore/types/waap/domains/custom_rule_delete_multiple_params.py +13 -0
  213. gcore/types/waap/domains/custom_rule_list_params.py +35 -0
  214. gcore/types/waap/domains/custom_rule_update_params.py +375 -0
  215. gcore/types/waap/domains/firewall_rule_create_params.py +75 -0
  216. gcore/types/waap/domains/firewall_rule_delete_multiple_params.py +13 -0
  217. gcore/types/waap/domains/firewall_rule_list_params.py +33 -0
  218. gcore/types/waap/domains/firewall_rule_update_params.py +78 -0
  219. gcore/types/waap/domains/insight_list_params.py +34 -0
  220. gcore/types/waap/domains/insight_replace_params.py +17 -0
  221. gcore/types/waap/domains/insight_silence_create_params.py +28 -0
  222. gcore/types/waap/domains/insight_silence_list_params.py +33 -0
  223. gcore/types/waap/domains/insight_silence_update_params.py +28 -0
  224. gcore/types/waap/domains/setting_update_params.py +7 -0
  225. gcore/types/waap/ip_info_get_attack_time_series_params.py +12 -0
  226. gcore/types/waap/ip_info_get_attack_time_series_response.py +10 -0
  227. gcore/types/waap/ip_info_get_blocked_requests_params.py +15 -0
  228. gcore/types/waap/ip_info_get_blocked_requests_response.py +10 -0
  229. gcore/types/waap/ip_info_get_counts_params.py +19 -0
  230. gcore/types/waap/ip_info_get_ddos_attack_series_params.py +12 -0
  231. gcore/types/waap/ip_info_get_params.py +12 -0
  232. gcore/types/waap/ip_info_get_top_sessions_params.py +15 -0
  233. gcore/types/waap/ip_info_get_top_sessions_response.py +10 -0
  234. gcore/types/waap/ip_info_get_top_urls_params.py +15 -0
  235. gcore/types/waap/ip_info_get_top_urls_response.py +10 -0
  236. gcore/types/waap/ip_info_get_top_user_agents_params.py +15 -0
  237. gcore/types/waap/ip_info_get_top_user_agents_response.py +10 -0
  238. gcore/types/waap/ip_info_list_attacked_countries_params.py +12 -0
  239. gcore/types/waap/ip_info_list_attacked_countries_response.py +10 -0
  240. gcore/types/waap/organization_list_params.py +22 -0
  241. gcore/types/waap/statistic_get_usage_series_params.py +25 -0
  242. gcore/types/waap/tag_list_params.py +28 -0
  243. gcore/types/waap/waap_advanced_rule.py +83 -0
  244. gcore/types/waap/waap_advanced_rule_descriptor.py +49 -0
  245. gcore/types/waap/waap_advanced_rule_descriptor_list.py +15 -0
  246. gcore/types/waap/waap_block_csrf_page_data.py +28 -0
  247. gcore/types/waap/waap_block_csrf_page_data_param.py +28 -0
  248. gcore/types/waap/waap_block_page_data.py +28 -0
  249. gcore/types/waap/waap_block_page_data_param.py +28 -0
  250. gcore/types/waap/waap_blocked_statistics.py +36 -0
  251. gcore/types/waap/waap_captcha_page_data.py +31 -0
  252. gcore/types/waap/waap_captcha_page_data_param.py +31 -0
  253. gcore/types/waap/waap_common_tag.py +16 -0
  254. gcore/types/waap/waap_cookie_disabled_page_data.py +18 -0
  255. gcore/types/waap/waap_cookie_disabled_page_data_param.py +18 -0
  256. gcore/types/waap/waap_count_statistics.py +36 -0
  257. gcore/types/waap/waap_custom_page_preview.py +10 -0
  258. gcore/types/waap/waap_custom_page_set.py +36 -0
  259. gcore/types/waap/waap_custom_rule.py +377 -0
  260. gcore/types/waap/waap_customer_rule_state.py +7 -0
  261. gcore/types/waap/waap_ddos_attack.py +16 -0
  262. gcore/types/waap/waap_ddos_info.py +17 -0
  263. gcore/types/waap/{waap_api_urls.py → waap_domain_api_settings.py} +9 -2
  264. gcore/types/waap/waap_domain_policy.py +29 -0
  265. gcore/types/waap/{waap_domain_settings.py → waap_domain_settings_model.py} +4 -4
  266. gcore/types/waap/waap_event_statistics.py +15 -0
  267. gcore/types/waap/waap_firewall_rule.py +78 -0
  268. gcore/types/waap/waap_get_account_overview_response.py +34 -0
  269. gcore/types/waap/waap_handshake_page_data.py +25 -0
  270. gcore/types/waap/waap_handshake_page_data_param.py +25 -0
  271. gcore/types/waap/waap_insight.py +38 -0
  272. gcore/types/waap/waap_insight_silence.py +28 -0
  273. gcore/types/waap/waap_insight_silence_sort_by.py +9 -0
  274. gcore/types/waap/waap_insight_sort_by.py +20 -0
  275. gcore/types/waap/waap_insight_status.py +7 -0
  276. gcore/types/waap/waap_ip_country_attack.py +16 -0
  277. gcore/types/waap/waap_ip_ddos_info_model.py +23 -0
  278. gcore/types/waap/waap_ip_info.py +57 -0
  279. gcore/types/waap/waap_ip_info_counts.py +16 -0
  280. gcore/types/waap/waap_javascript_disabled_page_data.py +18 -0
  281. gcore/types/waap/waap_javascript_disabled_page_data_param.py +18 -0
  282. gcore/types/waap/waap_network_details.py +17 -0
  283. gcore/types/waap/waap_organization.py +13 -0
  284. gcore/types/waap/waap_page_type.py +9 -0
  285. gcore/types/waap/waap_paginated_custom_page_set.py +22 -0
  286. gcore/types/waap/waap_paginated_ddos_attack.py +22 -0
  287. gcore/types/waap/waap_paginated_ddos_info.py +22 -0
  288. gcore/types/waap/waap_paginated_request_summary.py +22 -0
  289. gcore/types/waap/waap_pattern_matched_tag.py +37 -0
  290. gcore/types/waap/waap_policy_action.py +7 -0
  291. gcore/types/waap/waap_policy_mode.py +10 -0
  292. gcore/types/waap/waap_request_details.py +92 -0
  293. gcore/types/waap/waap_request_organization.py +13 -0
  294. gcore/types/waap/waap_request_summary.py +59 -0
  295. gcore/types/waap/waap_resolution.py +7 -0
  296. gcore/types/waap/waap_rule_action_type.py +7 -0
  297. gcore/types/waap/waap_rule_blocked_requests.py +16 -0
  298. gcore/types/waap/waap_rule_set.py +41 -0
  299. gcore/types/waap/waap_statistic_item.py +18 -0
  300. gcore/types/waap/waap_statistics_series.py +16 -0
  301. gcore/types/waap/waap_tag.py +16 -0
  302. gcore/types/waap/waap_time_series_attack.py +23 -0
  303. gcore/types/waap/waap_top_session.py +24 -0
  304. gcore/types/waap/waap_top_url.py +13 -0
  305. gcore/types/waap/waap_top_user_agent.py +13 -0
  306. gcore/types/waap/waap_traffic_metrics.py +68 -0
  307. gcore/types/waap/waap_traffic_type.py +28 -0
  308. gcore/types/waap/waap_user_agent_details.py +40 -0
  309. {gcore-0.2.0.dist-info → gcore-0.4.0.dist-info}/METADATA +40 -3
  310. {gcore-0.2.0.dist-info → gcore-0.4.0.dist-info}/RECORD +312 -149
  311. gcore/types/cloud/baremetal/flavor_list_suitable_params.py +0 -22
  312. gcore/types/cloud/instances/flavor_list_for_resize_params.py +0 -16
  313. gcore/types/cloud/instances/flavor_list_suitable_params.py +0 -56
  314. {gcore-0.2.0.dist-info → gcore-0.4.0.dist-info}/WHEEL +0 -0
  315. {gcore-0.2.0.dist-info → gcore-0.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -92,17 +92,17 @@ class L7PoliciesResource(SyncAPIResource):
92
92
  position: The position of this policy on the listener. Positions start at 1.
93
93
 
94
94
  redirect_http_code: Requests matching this policy will be redirected to the specified URL or Prefix
95
- URL with the HTTP response code. Valid if action is REDIRECT_TO_URL or
96
- REDIRECT_PREFIX. Valid options are 301, 302, 303, 307, or 308. Default is 302.
95
+ URL with the HTTP response code. Valid if action is `REDIRECT_TO_URL` or
96
+ `REDIRECT_PREFIX`. Valid options are 301, 302, 303, 307, or 308. Default is 302.
97
97
 
98
98
  redirect_pool_id: Requests matching this policy will be redirected to the pool withthis ID. Only
99
- valid if action is REDIRECT_TO_POOL.
99
+ valid if action is `REDIRECT_TO_POOL`.
100
100
 
101
101
  redirect_prefix: Requests matching this policy will be redirected to this Prefix URL. Only valid
102
- if action is REDIRECT_PREFIX.
102
+ if action is `REDIRECT_PREFIX`.
103
103
 
104
104
  redirect_url: Requests matching this policy will be redirected to this URL. Only valid if
105
- action is REDIRECT_TO_URL.
105
+ action is `REDIRECT_TO_URL`.
106
106
 
107
107
  tags: A list of simple strings assigned to the resource.
108
108
 
@@ -286,17 +286,17 @@ class L7PoliciesResource(SyncAPIResource):
286
286
  position: The position of this policy on the listener. Positions start at 1.
287
287
 
288
288
  redirect_http_code: Requests matching this policy will be redirected to the specified URL or Prefix
289
- URL with the HTTP response code. Valid if action is REDIRECT_TO_URL or
290
- REDIRECT_PREFIX. Valid options are 301, 302, 303, 307, or 308. Default is 302.
289
+ URL with the HTTP response code. Valid if action is `REDIRECT_TO_URL` or
290
+ `REDIRECT_PREFIX`. Valid options are 301, 302, 303, 307, or 308. Default is 302.
291
291
 
292
292
  redirect_pool_id: Requests matching this policy will be redirected to the pool with this ID. Only
293
- valid if action is REDIRECT_TO_POOL.
293
+ valid if action is `REDIRECT_TO_POOL`.
294
294
 
295
295
  redirect_prefix: Requests matching this policy will be redirected to this Prefix URL. Only valid
296
- if action is REDIRECT_PREFIX.
296
+ if action is `REDIRECT_PREFIX`.
297
297
 
298
298
  redirect_url: Requests matching this policy will be redirected to this URL. Only valid if
299
- action is REDIRECT_TO_URL.
299
+ action is `REDIRECT_TO_URL`.
300
300
 
301
301
  tags: A list of simple strings assigned to the resource.
302
302
 
@@ -381,7 +381,11 @@ class L7PoliciesResource(SyncAPIResource):
381
381
  extra_headers=extra_headers,
382
382
  polling_interval_seconds=polling_interval_seconds,
383
383
  )
384
- if not task.created_resources or not task.created_resources.l7polices or len(task.created_resources.l7polices) != 1:
384
+ if (
385
+ not task.created_resources
386
+ or not task.created_resources.l7polices
387
+ or len(task.created_resources.l7polices) != 1
388
+ ):
385
389
  raise ValueError(f"Expected exactly one resource to be created in a task")
386
390
  return self.get(
387
391
  l7policy_id=task.created_resources.l7polices[0],
@@ -535,17 +539,17 @@ class AsyncL7PoliciesResource(AsyncAPIResource):
535
539
  position: The position of this policy on the listener. Positions start at 1.
536
540
 
537
541
  redirect_http_code: Requests matching this policy will be redirected to the specified URL or Prefix
538
- URL with the HTTP response code. Valid if action is REDIRECT_TO_URL or
539
- REDIRECT_PREFIX. Valid options are 301, 302, 303, 307, or 308. Default is 302.
542
+ URL with the HTTP response code. Valid if action is `REDIRECT_TO_URL` or
543
+ `REDIRECT_PREFIX`. Valid options are 301, 302, 303, 307, or 308. Default is 302.
540
544
 
541
545
  redirect_pool_id: Requests matching this policy will be redirected to the pool withthis ID. Only
542
- valid if action is REDIRECT_TO_POOL.
546
+ valid if action is `REDIRECT_TO_POOL`.
543
547
 
544
548
  redirect_prefix: Requests matching this policy will be redirected to this Prefix URL. Only valid
545
- if action is REDIRECT_PREFIX.
549
+ if action is `REDIRECT_PREFIX`.
546
550
 
547
551
  redirect_url: Requests matching this policy will be redirected to this URL. Only valid if
548
- action is REDIRECT_TO_URL.
552
+ action is `REDIRECT_TO_URL`.
549
553
 
550
554
  tags: A list of simple strings assigned to the resource.
551
555
 
@@ -729,17 +733,17 @@ class AsyncL7PoliciesResource(AsyncAPIResource):
729
733
  position: The position of this policy on the listener. Positions start at 1.
730
734
 
731
735
  redirect_http_code: Requests matching this policy will be redirected to the specified URL or Prefix
732
- URL with the HTTP response code. Valid if action is REDIRECT_TO_URL or
733
- REDIRECT_PREFIX. Valid options are 301, 302, 303, 307, or 308. Default is 302.
736
+ URL with the HTTP response code. Valid if action is `REDIRECT_TO_URL` or
737
+ `REDIRECT_PREFIX`. Valid options are 301, 302, 303, 307, or 308. Default is 302.
734
738
 
735
739
  redirect_pool_id: Requests matching this policy will be redirected to the pool with this ID. Only
736
- valid if action is REDIRECT_TO_POOL.
740
+ valid if action is `REDIRECT_TO_POOL`.
737
741
 
738
742
  redirect_prefix: Requests matching this policy will be redirected to this Prefix URL. Only valid
739
- if action is REDIRECT_PREFIX.
743
+ if action is `REDIRECT_PREFIX`.
740
744
 
741
745
  redirect_url: Requests matching this policy will be redirected to this URL. Only valid if
742
- action is REDIRECT_TO_URL.
746
+ action is `REDIRECT_TO_URL`.
743
747
 
744
748
  tags: A list of simple strings assigned to the resource.
745
749
 
@@ -824,7 +828,11 @@ class AsyncL7PoliciesResource(AsyncAPIResource):
824
828
  extra_headers=extra_headers,
825
829
  polling_interval_seconds=polling_interval_seconds,
826
830
  )
827
- if not task.created_resources or not task.created_resources.l7polices or len(task.created_resources.l7polices) != 1:
831
+ if (
832
+ not task.created_resources
833
+ or not task.created_resources.l7polices
834
+ or len(task.created_resources.l7polices) != 1
835
+ ):
828
836
  raise ValueError(f"Expected exactly one resource to be created in a task")
829
837
  return await self.get(
830
838
  l7policy_id=task.created_resources.l7polices[0],
@@ -98,13 +98,13 @@ class ListenersResource(SyncAPIResource):
98
98
  connection_limit: Limit of the simultaneous connections
99
99
 
100
100
  insert_x_forwarded: Add headers X-Forwarded-For, X-Forwarded-Port, X-Forwarded-Proto to requests.
101
- Only used with HTTP or TERMINATED_HTTPS protocols.
101
+ Only used with HTTP or `TERMINATED_HTTPS` protocols.
102
102
 
103
- secret_id: ID of the secret where PKCS12 file is stored for TERMINATED_HTTPS or PROMETHEUS
104
- listener
103
+ secret_id: ID of the secret where PKCS12 file is stored for `TERMINATED_HTTPS` or
104
+ PROMETHEUS listener
105
105
 
106
106
  sni_secret_id: List of secrets IDs containing PKCS12 format certificate/key bundles for
107
- TERMINATED_HTTPS or PROMETHEUS listeners
107
+ `TERMINATED_HTTPS` or PROMETHEUS listeners
108
108
 
109
109
  timeout_client_data: Frontend client inactivity timeout in milliseconds
110
110
 
@@ -175,7 +175,7 @@ class ListenersResource(SyncAPIResource):
175
175
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
176
176
  ) -> TaskIDList:
177
177
  """
178
- Update listener
178
+ Update load balancer listener
179
179
 
180
180
  Args:
181
181
  project_id: Project ID
@@ -190,11 +190,11 @@ class ListenersResource(SyncAPIResource):
190
190
 
191
191
  name: Load balancer listener name
192
192
 
193
- secret_id: ID of the secret where PKCS12 file is stored for TERMINATED_HTTPS or PROMETHEUS
194
- load balancer
193
+ secret_id: ID of the secret where PKCS12 file is stored for `TERMINATED_HTTPS` or
194
+ PROMETHEUS load balancer
195
195
 
196
196
  sni_secret_id: List of secret's ID containing PKCS12 format certificate/key bundfles for
197
- TERMINATED_HTTPS or PROMETHEUS listeners
197
+ `TERMINATED_HTTPS` or PROMETHEUS listeners
198
198
 
199
199
  timeout_client_data: Frontend client inactivity timeout in milliseconds
200
200
 
@@ -356,7 +356,7 @@ class ListenersResource(SyncAPIResource):
356
356
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
357
357
  ) -> LoadBalancerListenerDetail:
358
358
  """
359
- Get listener
359
+ Get load balancer listener
360
360
 
361
361
  Args:
362
362
  project_id: Project ID
@@ -447,7 +447,11 @@ class ListenersResource(SyncAPIResource):
447
447
  extra_headers=extra_headers,
448
448
  polling_interval_seconds=polling_interval_seconds,
449
449
  )
450
- if not task.created_resources or not task.created_resources.listeners or len(task.created_resources.listeners) != 1:
450
+ if (
451
+ not task.created_resources
452
+ or not task.created_resources.listeners
453
+ or len(task.created_resources.listeners) != 1
454
+ ):
451
455
  raise ValueError(f"Expected exactly one resource to be created in a task")
452
456
  return self.get(
453
457
  listener_id=task.created_resources.listeners[0],
@@ -617,13 +621,13 @@ class AsyncListenersResource(AsyncAPIResource):
617
621
  connection_limit: Limit of the simultaneous connections
618
622
 
619
623
  insert_x_forwarded: Add headers X-Forwarded-For, X-Forwarded-Port, X-Forwarded-Proto to requests.
620
- Only used with HTTP or TERMINATED_HTTPS protocols.
624
+ Only used with HTTP or `TERMINATED_HTTPS` protocols.
621
625
 
622
- secret_id: ID of the secret where PKCS12 file is stored for TERMINATED_HTTPS or PROMETHEUS
623
- listener
626
+ secret_id: ID of the secret where PKCS12 file is stored for `TERMINATED_HTTPS` or
627
+ PROMETHEUS listener
624
628
 
625
629
  sni_secret_id: List of secrets IDs containing PKCS12 format certificate/key bundles for
626
- TERMINATED_HTTPS or PROMETHEUS listeners
630
+ `TERMINATED_HTTPS` or PROMETHEUS listeners
627
631
 
628
632
  timeout_client_data: Frontend client inactivity timeout in milliseconds
629
633
 
@@ -694,7 +698,7 @@ class AsyncListenersResource(AsyncAPIResource):
694
698
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
695
699
  ) -> TaskIDList:
696
700
  """
697
- Update listener
701
+ Update load balancer listener
698
702
 
699
703
  Args:
700
704
  project_id: Project ID
@@ -709,11 +713,11 @@ class AsyncListenersResource(AsyncAPIResource):
709
713
 
710
714
  name: Load balancer listener name
711
715
 
712
- secret_id: ID of the secret where PKCS12 file is stored for TERMINATED_HTTPS or PROMETHEUS
713
- load balancer
716
+ secret_id: ID of the secret where PKCS12 file is stored for `TERMINATED_HTTPS` or
717
+ PROMETHEUS load balancer
714
718
 
715
719
  sni_secret_id: List of secret's ID containing PKCS12 format certificate/key bundfles for
716
- TERMINATED_HTTPS or PROMETHEUS listeners
720
+ `TERMINATED_HTTPS` or PROMETHEUS listeners
717
721
 
718
722
  timeout_client_data: Frontend client inactivity timeout in milliseconds
719
723
 
@@ -875,7 +879,7 @@ class AsyncListenersResource(AsyncAPIResource):
875
879
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
876
880
  ) -> LoadBalancerListenerDetail:
877
881
  """
878
- Get listener
882
+ Get load balancer listener
879
883
 
880
884
  Args:
881
885
  project_id: Project ID
@@ -966,7 +970,11 @@ class AsyncListenersResource(AsyncAPIResource):
966
970
  extra_headers=extra_headers,
967
971
  polling_interval_seconds=polling_interval_seconds,
968
972
  )
969
- if not task.created_resources or not task.created_resources.listeners or len(task.created_resources.listeners) != 1:
973
+ if (
974
+ not task.created_resources
975
+ or not task.created_resources.listeners
976
+ or len(task.created_resources.listeners) != 1
977
+ ):
970
978
  raise ValueError(f"Expected exactly one resource to be created in a task")
971
979
  return await self.get(
972
980
  listener_id=task.created_resources.listeners[0],
@@ -975,7 +983,7 @@ class AsyncListenersResource(AsyncAPIResource):
975
983
  extra_headers=extra_headers,
976
984
  timeout=timeout,
977
985
  )
978
-
986
+
979
987
  async def delete_and_poll(
980
988
  self,
981
989
  listener_id: str,
@@ -1008,7 +1016,7 @@ class AsyncListenersResource(AsyncAPIResource):
1008
1016
  task_id=response.tasks[0],
1009
1017
  extra_headers=extra_headers,
1010
1018
  polling_interval_seconds=polling_interval_seconds,
1011
- )
1019
+ )
1012
1020
 
1013
1021
  async def update_and_poll(
1014
1022
  self,
@@ -1069,6 +1077,7 @@ class AsyncListenersResource(AsyncAPIResource):
1069
1077
  timeout=timeout,
1070
1078
  )
1071
1079
 
1080
+
1072
1081
  class ListenersResourceWithRawResponse:
1073
1082
  def __init__(self, listeners: ListenersResource) -> None:
1074
1083
  self._listeners = listeners
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Iterable
5
+ from typing import Dict, List, Iterable, Optional
6
6
 
7
7
  import httpx
8
8
 
@@ -141,7 +141,7 @@ class LoadBalancersResource(SyncAPIResource):
141
141
  name: str | NotGiven = NOT_GIVEN,
142
142
  name_template: str | NotGiven = NOT_GIVEN,
143
143
  preferred_connectivity: LoadBalancerMemberConnectivity | NotGiven = NOT_GIVEN,
144
- tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
144
+ tags: Dict[str, str] | NotGiven = NOT_GIVEN,
145
145
  vip_ip_family: InterfaceIPFamily | NotGiven = NOT_GIVEN,
146
146
  vip_network_id: str | NotGiven = NOT_GIVEN,
147
147
  vip_port_id: str | NotGiven = NOT_GIVEN,
@@ -172,8 +172,9 @@ class LoadBalancersResource(SyncAPIResource):
172
172
 
173
173
  preferred_connectivity: Preferred option to establish connectivity between load balancer and its pools
174
174
  members. L2 provides best performance, L3 provides less IPs usage. It is taking
175
- effect only if instance_id + ip_address is provided, not subnet_id + ip_address,
176
- because we're considering this as intentional subnet_id specification.
175
+ effect only if `instance_id` + `ip_address` is provided, not `subnet_id` +
176
+ `ip_address`, because we're considering this as intentional `subnet_id`
177
+ specification.
177
178
 
178
179
  tags: Key-value tags to associate with the resource. A tag is a key-value pair that
179
180
  can be associated with a resource, enabling efficient filtering and grouping for
@@ -181,16 +182,17 @@ class LoadBalancersResource(SyncAPIResource):
181
182
  modified by the user. Tags are also integrated with cost reports, allowing cost
182
183
  data to be filtered based on tag keys or values.
183
184
 
184
- vip_ip_family: IP family for load balancer subnet auto-selection if vip_network_id is specified
185
+ vip_ip_family: IP family for load balancer subnet auto-selection if `vip_network_id` is
186
+ specified
185
187
 
186
188
  vip_network_id: Network ID for load balancer. If not specified, default external network will be
187
- used. Mutually exclusive with vip_port_id
189
+ used. Mutually exclusive with `vip_port_id`
188
190
 
189
191
  vip_port_id: Existing Reserved Fixed IP port ID for load balancer. Mutually exclusive with
190
- vip_network_id
192
+ `vip_network_id`
191
193
 
192
- vip_subnet_id: Subnet ID for load balancer. If not specified, any subnet from vip_network_id
193
- will be selected. Ignored when vip_network_id is not specified.
194
+ vip_subnet_id: Subnet ID for load balancer. If not specified, any subnet from `vip_network_id`
195
+ will be selected. Ignored when `vip_network_id` is not specified.
194
196
 
195
197
  extra_headers: Send extra headers
196
198
 
@@ -238,6 +240,7 @@ class LoadBalancersResource(SyncAPIResource):
238
240
  logging: load_balancer_update_params.Logging | NotGiven = NOT_GIVEN,
239
241
  name: str | NotGiven = NOT_GIVEN,
240
242
  preferred_connectivity: LoadBalancerMemberConnectivity | NotGiven = NOT_GIVEN,
243
+ tags: Optional[TagUpdateMapParam] | NotGiven = NOT_GIVEN,
241
244
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
242
245
  # The extra values given here take precedence over values defined on the client or passed to this method.
243
246
  extra_headers: Headers | None = None,
@@ -246,8 +249,10 @@ class LoadBalancersResource(SyncAPIResource):
246
249
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
247
250
  ) -> LoadBalancer:
248
251
  """
249
- Rename load balancer, activate/deactivate logs or update preferred connectivity
250
- for load balancer
252
+ Rename load balancer, activate/deactivate logging, update preferred connectivity
253
+ type and/or modify load balancer tags. The request will only process the fields
254
+ that are provided in the request body. Any fields that are not included will
255
+ remain unchanged.
251
256
 
252
257
  Args:
253
258
  logging: Logging configuration
@@ -257,6 +262,26 @@ class LoadBalancersResource(SyncAPIResource):
257
262
  preferred_connectivity: Preferred option to establish connectivity between load balancer and its pools
258
263
  members
259
264
 
265
+ tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide
266
+ key-value pairs to add or update tags. Set tag values to `null` to remove tags.
267
+ Unspecified tags remain unchanged. Read-only tags are always preserved and
268
+ cannot be modified. **Examples:**
269
+
270
+ - **Add/update tags:**
271
+ `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
272
+ updates existing ones.
273
+ - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
274
+ - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
275
+ tags are preserved).
276
+ - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
277
+ specified tags.
278
+ - **Mixed operations:**
279
+ `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
280
+ adds/updates 'environment' and '`cost_center`' while removing
281
+ '`deprecated_tag`', preserving other existing tags.
282
+ - **Replace all:** first delete existing tags with null values, then add new
283
+ ones in the same request.
284
+
260
285
  extra_headers: Send extra headers
261
286
 
262
287
  extra_query: Add additional query parameters to the request
@@ -278,6 +303,7 @@ class LoadBalancersResource(SyncAPIResource):
278
303
  "logging": logging,
279
304
  "name": name,
280
305
  "preferred_connectivity": preferred_connectivity,
306
+ "tags": tags,
281
307
  },
282
308
  load_balancer_update_params.LoadBalancerUpdateParams,
283
309
  ),
@@ -323,18 +349,16 @@ class LoadBalancersResource(SyncAPIResource):
323
349
 
324
350
  offset: Offset value is used to exclude the first set of records from the result.
325
351
 
326
- order_by: Ordering Load Balancer list result by name, created_at, updated_at,
327
- operating_status, provisioning_status, vip_address, vip_ip_family and flavor
328
- fields of the load balancer and directions (name.asc), default is
329
- "created_at.asc"
352
+ order_by: Ordering Load Balancer list result by name, `created_at`, `updated_at`,
353
+ `operating_status`, `provisioning_status`, `vip_address`, `vip_ip_family` and
354
+ flavor fields of the load balancer and directions (name.asc), default is
355
+ "`created_at`.asc"
330
356
 
331
357
  show_stats: Show statistics
332
358
 
333
359
  tag_key: Filter by tag keys.
334
360
 
335
- tag_key_value: Filter by tag key-value pairs. Must be a valid JSON string. curl -G
336
- --data-urlencode "tag_key_value={"key": "value"}" --url
337
- "http://localhost:1111/v1/loadbalancers/1/1"
361
+ tag_key_value: Filter by tag key-value pairs. Must be a valid JSON string.
338
362
 
339
363
  with_ddos: Show Advanced DDoS protection profile, if exists
340
364
 
@@ -431,7 +455,7 @@ class LoadBalancersResource(SyncAPIResource):
431
455
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
432
456
  ) -> TaskIDList:
433
457
  """
434
- Failover loadbalancer
458
+ Failover load balancer
435
459
 
436
460
  Args:
437
461
  force: Validate current load balancer status before failover or not.
@@ -529,7 +553,7 @@ class LoadBalancersResource(SyncAPIResource):
529
553
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
530
554
  ) -> TaskIDList:
531
555
  """
532
- Resize loadbalancer
556
+ Resize load balancer
533
557
 
534
558
  Args:
535
559
  flavor: Name of the desired flavor to resize to.
@@ -569,7 +593,7 @@ class LoadBalancersResource(SyncAPIResource):
569
593
  name: str | NotGiven = NOT_GIVEN,
570
594
  name_template: str | NotGiven = NOT_GIVEN,
571
595
  preferred_connectivity: LoadBalancerMemberConnectivity | NotGiven = NOT_GIVEN,
572
- tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
596
+ tags: Dict[str, str] | NotGiven = NOT_GIVEN,
573
597
  vip_ip_family: InterfaceIPFamily | NotGiven = NOT_GIVEN,
574
598
  vip_network_id: str | NotGiven = NOT_GIVEN,
575
599
  vip_port_id: str | NotGiven = NOT_GIVEN,
@@ -609,7 +633,11 @@ class LoadBalancersResource(SyncAPIResource):
609
633
  extra_headers=extra_headers,
610
634
  polling_interval_seconds=polling_interval_seconds,
611
635
  )
612
- if not task.created_resources or not task.created_resources.loadbalancers or len(task.created_resources.loadbalancers) != 1:
636
+ if (
637
+ not task.created_resources
638
+ or not task.created_resources.loadbalancers
639
+ or len(task.created_resources.loadbalancers) != 1
640
+ ):
613
641
  raise ValueError(f"Expected exactly one resource to be created in a task")
614
642
  return self.get(
615
643
  loadbalancer_id=task.created_resources.loadbalancers[0],
@@ -796,7 +824,7 @@ class AsyncLoadBalancersResource(AsyncAPIResource):
796
824
  name: str | NotGiven = NOT_GIVEN,
797
825
  name_template: str | NotGiven = NOT_GIVEN,
798
826
  preferred_connectivity: LoadBalancerMemberConnectivity | NotGiven = NOT_GIVEN,
799
- tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
827
+ tags: Dict[str, str] | NotGiven = NOT_GIVEN,
800
828
  vip_ip_family: InterfaceIPFamily | NotGiven = NOT_GIVEN,
801
829
  vip_network_id: str | NotGiven = NOT_GIVEN,
802
830
  vip_port_id: str | NotGiven = NOT_GIVEN,
@@ -827,8 +855,9 @@ class AsyncLoadBalancersResource(AsyncAPIResource):
827
855
 
828
856
  preferred_connectivity: Preferred option to establish connectivity between load balancer and its pools
829
857
  members. L2 provides best performance, L3 provides less IPs usage. It is taking
830
- effect only if instance_id + ip_address is provided, not subnet_id + ip_address,
831
- because we're considering this as intentional subnet_id specification.
858
+ effect only if `instance_id` + `ip_address` is provided, not `subnet_id` +
859
+ `ip_address`, because we're considering this as intentional `subnet_id`
860
+ specification.
832
861
 
833
862
  tags: Key-value tags to associate with the resource. A tag is a key-value pair that
834
863
  can be associated with a resource, enabling efficient filtering and grouping for
@@ -836,16 +865,17 @@ class AsyncLoadBalancersResource(AsyncAPIResource):
836
865
  modified by the user. Tags are also integrated with cost reports, allowing cost
837
866
  data to be filtered based on tag keys or values.
838
867
 
839
- vip_ip_family: IP family for load balancer subnet auto-selection if vip_network_id is specified
868
+ vip_ip_family: IP family for load balancer subnet auto-selection if `vip_network_id` is
869
+ specified
840
870
 
841
871
  vip_network_id: Network ID for load balancer. If not specified, default external network will be
842
- used. Mutually exclusive with vip_port_id
872
+ used. Mutually exclusive with `vip_port_id`
843
873
 
844
874
  vip_port_id: Existing Reserved Fixed IP port ID for load balancer. Mutually exclusive with
845
- vip_network_id
875
+ `vip_network_id`
846
876
 
847
- vip_subnet_id: Subnet ID for load balancer. If not specified, any subnet from vip_network_id
848
- will be selected. Ignored when vip_network_id is not specified.
877
+ vip_subnet_id: Subnet ID for load balancer. If not specified, any subnet from `vip_network_id`
878
+ will be selected. Ignored when `vip_network_id` is not specified.
849
879
 
850
880
  extra_headers: Send extra headers
851
881
 
@@ -893,6 +923,7 @@ class AsyncLoadBalancersResource(AsyncAPIResource):
893
923
  logging: load_balancer_update_params.Logging | NotGiven = NOT_GIVEN,
894
924
  name: str | NotGiven = NOT_GIVEN,
895
925
  preferred_connectivity: LoadBalancerMemberConnectivity | NotGiven = NOT_GIVEN,
926
+ tags: Optional[TagUpdateMapParam] | NotGiven = NOT_GIVEN,
896
927
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
897
928
  # The extra values given here take precedence over values defined on the client or passed to this method.
898
929
  extra_headers: Headers | None = None,
@@ -901,8 +932,10 @@ class AsyncLoadBalancersResource(AsyncAPIResource):
901
932
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
902
933
  ) -> LoadBalancer:
903
934
  """
904
- Rename load balancer, activate/deactivate logs or update preferred connectivity
905
- for load balancer
935
+ Rename load balancer, activate/deactivate logging, update preferred connectivity
936
+ type and/or modify load balancer tags. The request will only process the fields
937
+ that are provided in the request body. Any fields that are not included will
938
+ remain unchanged.
906
939
 
907
940
  Args:
908
941
  logging: Logging configuration
@@ -912,6 +945,26 @@ class AsyncLoadBalancersResource(AsyncAPIResource):
912
945
  preferred_connectivity: Preferred option to establish connectivity between load balancer and its pools
913
946
  members
914
947
 
948
+ tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide
949
+ key-value pairs to add or update tags. Set tag values to `null` to remove tags.
950
+ Unspecified tags remain unchanged. Read-only tags are always preserved and
951
+ cannot be modified. **Examples:**
952
+
953
+ - **Add/update tags:**
954
+ `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
955
+ updates existing ones.
956
+ - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
957
+ - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
958
+ tags are preserved).
959
+ - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
960
+ specified tags.
961
+ - **Mixed operations:**
962
+ `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
963
+ adds/updates 'environment' and '`cost_center`' while removing
964
+ '`deprecated_tag`', preserving other existing tags.
965
+ - **Replace all:** first delete existing tags with null values, then add new
966
+ ones in the same request.
967
+
915
968
  extra_headers: Send extra headers
916
969
 
917
970
  extra_query: Add additional query parameters to the request
@@ -933,6 +986,7 @@ class AsyncLoadBalancersResource(AsyncAPIResource):
933
986
  "logging": logging,
934
987
  "name": name,
935
988
  "preferred_connectivity": preferred_connectivity,
989
+ "tags": tags,
936
990
  },
937
991
  load_balancer_update_params.LoadBalancerUpdateParams,
938
992
  ),
@@ -978,18 +1032,16 @@ class AsyncLoadBalancersResource(AsyncAPIResource):
978
1032
 
979
1033
  offset: Offset value is used to exclude the first set of records from the result.
980
1034
 
981
- order_by: Ordering Load Balancer list result by name, created_at, updated_at,
982
- operating_status, provisioning_status, vip_address, vip_ip_family and flavor
983
- fields of the load balancer and directions (name.asc), default is
984
- "created_at.asc"
1035
+ order_by: Ordering Load Balancer list result by name, `created_at`, `updated_at`,
1036
+ `operating_status`, `provisioning_status`, `vip_address`, `vip_ip_family` and
1037
+ flavor fields of the load balancer and directions (name.asc), default is
1038
+ "`created_at`.asc"
985
1039
 
986
1040
  show_stats: Show statistics
987
1041
 
988
1042
  tag_key: Filter by tag keys.
989
1043
 
990
- tag_key_value: Filter by tag key-value pairs. Must be a valid JSON string. curl -G
991
- --data-urlencode "tag_key_value={"key": "value"}" --url
992
- "http://localhost:1111/v1/loadbalancers/1/1"
1044
+ tag_key_value: Filter by tag key-value pairs. Must be a valid JSON string.
993
1045
 
994
1046
  with_ddos: Show Advanced DDoS protection profile, if exists
995
1047
 
@@ -1086,7 +1138,7 @@ class AsyncLoadBalancersResource(AsyncAPIResource):
1086
1138
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
1087
1139
  ) -> TaskIDList:
1088
1140
  """
1089
- Failover loadbalancer
1141
+ Failover load balancer
1090
1142
 
1091
1143
  Args:
1092
1144
  force: Validate current load balancer status before failover or not.
@@ -1186,7 +1238,7 @@ class AsyncLoadBalancersResource(AsyncAPIResource):
1186
1238
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
1187
1239
  ) -> TaskIDList:
1188
1240
  """
1189
- Resize loadbalancer
1241
+ Resize load balancer
1190
1242
 
1191
1243
  Args:
1192
1244
  flavor: Name of the desired flavor to resize to.
@@ -1226,7 +1278,7 @@ class AsyncLoadBalancersResource(AsyncAPIResource):
1226
1278
  name: str | NotGiven = NOT_GIVEN,
1227
1279
  name_template: str | NotGiven = NOT_GIVEN,
1228
1280
  preferred_connectivity: LoadBalancerMemberConnectivity | NotGiven = NOT_GIVEN,
1229
- tags: TagUpdateMapParam | NotGiven = NOT_GIVEN,
1281
+ tags: Dict[str, str] | NotGiven = NOT_GIVEN,
1230
1282
  vip_ip_family: InterfaceIPFamily | NotGiven = NOT_GIVEN,
1231
1283
  vip_network_id: str | NotGiven = NOT_GIVEN,
1232
1284
  vip_port_id: str | NotGiven = NOT_GIVEN,
@@ -1266,7 +1318,11 @@ class AsyncLoadBalancersResource(AsyncAPIResource):
1266
1318
  extra_headers=extra_headers,
1267
1319
  polling_interval_seconds=polling_interval_seconds,
1268
1320
  )
1269
- if not task.created_resources or not task.created_resources.loadbalancers or len(task.created_resources.loadbalancers) != 1:
1321
+ if (
1322
+ not task.created_resources
1323
+ or not task.created_resources.loadbalancers
1324
+ or len(task.created_resources.loadbalancers) != 1
1325
+ ):
1270
1326
  raise ValueError(f"Expected exactly one resource to be created in a task")
1271
1327
  return await self.get(
1272
1328
  loadbalancer_id=task.created_resources.loadbalancers[0],
@@ -59,7 +59,7 @@ class MetricsResource(SyncAPIResource):
59
59
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
60
60
  ) -> LoadBalancerMetricsList:
61
61
  """
62
- Get loadbalancer metrics, including cpu, memory and network
62
+ Get load balancer metrics, including cpu, memory and network
63
63
 
64
64
  Args:
65
65
  time_interval: Time interval
@@ -132,7 +132,7 @@ class AsyncMetricsResource(AsyncAPIResource):
132
132
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
133
133
  ) -> LoadBalancerMetricsList:
134
134
  """
135
- Get loadbalancer metrics, including cpu, memory and network
135
+ Get load balancer metrics, including cpu, memory and network
136
136
 
137
137
  Args:
138
138
  time_interval: Time interval
@@ -68,7 +68,7 @@ class HealthMonitorsResource(SyncAPIResource):
68
68
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
69
69
  ) -> TaskIDList:
70
70
  """
71
- Create Load Balancer Pool Health Monitor
71
+ Create load balancer pool health monitor
72
72
 
73
73
  Args:
74
74
  project_id: Project ID
@@ -219,7 +219,7 @@ class AsyncHealthMonitorsResource(AsyncAPIResource):
219
219
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
220
220
  ) -> TaskIDList:
221
221
  """
222
- Create Load Balancer Pool Health Monitor
222
+ Create load balancer pool health monitor
223
223
 
224
224
  Args:
225
225
  project_id: Project ID