gcore 0.14.0__py3-none-any.whl → 0.16.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 (207) hide show
  1. gcore/_client.py +2 -8
  2. gcore/_version.py +1 -1
  3. gcore/resources/cdn/audit_log.py +4 -12
  4. gcore/resources/cdn/cdn.py +10 -18
  5. gcore/resources/cdn/certificates.py +16 -40
  6. gcore/resources/cdn/ip_ranges.py +4 -8
  7. gcore/resources/cdn/logs/__init__.py +0 -14
  8. gcore/resources/cdn/logs/logs.py +4 -44
  9. gcore/resources/cdn/logs_uploader/configs.py +14 -42
  10. gcore/resources/cdn/logs_uploader/policies.py +14 -42
  11. gcore/resources/cdn/logs_uploader/targets.py +14 -42
  12. gcore/resources/cdn/metrics.py +2 -6
  13. gcore/resources/cdn/network_capacity.py +2 -6
  14. gcore/resources/cdn/origin_groups.py +12 -32
  15. gcore/resources/cdn/resources/resources.py +18 -46
  16. gcore/resources/cdn/resources/rules.py +12 -36
  17. gcore/resources/cdn/resources/shield.py +4 -12
  18. gcore/resources/cdn/rule_templates.py +12 -36
  19. gcore/resources/cdn/shields.py +2 -6
  20. gcore/resources/cdn/statistics.py +16 -40
  21. gcore/resources/cdn/trusted_ca_certificates.py +10 -30
  22. gcore/resources/cloud/audit_logs.py +2 -6
  23. gcore/resources/cloud/baremetal/flavors.py +2 -6
  24. gcore/resources/cloud/baremetal/images.py +2 -6
  25. gcore/resources/cloud/baremetal/servers.py +6 -18
  26. gcore/resources/cloud/billing_reservations.py +25 -208
  27. gcore/resources/cloud/cost_reports.py +44 -62
  28. gcore/resources/cloud/file_shares/access_rules.py +6 -18
  29. gcore/resources/cloud/file_shares/file_shares.py +37 -44
  30. gcore/resources/cloud/floating_ips.py +14 -42
  31. gcore/resources/cloud/gpu_baremetal_clusters/flavors.py +2 -6
  32. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +18 -54
  33. gcore/resources/cloud/gpu_baremetal_clusters/images.py +8 -24
  34. gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py +2 -6
  35. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +14 -42
  36. gcore/resources/cloud/inference/api_keys.py +10 -30
  37. gcore/resources/cloud/inference/applications/deployments.py +135 -155
  38. gcore/resources/cloud/inference/applications/templates.py +4 -12
  39. gcore/resources/cloud/inference/deployments/deployments.py +16 -48
  40. gcore/resources/cloud/inference/deployments/logs.py +2 -6
  41. gcore/resources/cloud/inference/flavors.py +4 -12
  42. gcore/resources/cloud/inference/inference.py +2 -6
  43. gcore/resources/cloud/inference/registry_credentials.py +10 -30
  44. gcore/resources/cloud/inference/secrets.py +10 -30
  45. gcore/resources/cloud/instances/flavors.py +2 -6
  46. gcore/resources/cloud/instances/images.py +12 -36
  47. gcore/resources/cloud/instances/instances.py +99 -94
  48. gcore/resources/cloud/instances/interfaces.py +6 -18
  49. gcore/resources/cloud/instances/metrics.py +2 -6
  50. gcore/resources/cloud/ip_ranges.py +2 -6
  51. gcore/resources/cloud/k8s/clusters/clusters.py +18 -54
  52. gcore/resources/cloud/k8s/clusters/nodes.py +4 -12
  53. gcore/resources/cloud/k8s/clusters/pools/nodes.py +4 -12
  54. gcore/resources/cloud/k8s/clusters/pools/pools.py +12 -36
  55. gcore/resources/cloud/k8s/flavors.py +2 -6
  56. gcore/resources/cloud/k8s/k8s.py +2 -6
  57. gcore/resources/cloud/load_balancers/flavors.py +2 -6
  58. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +10 -30
  59. gcore/resources/cloud/load_balancers/l7_policies/rules.py +10 -30
  60. gcore/resources/cloud/load_balancers/listeners.py +26 -46
  61. gcore/resources/cloud/load_balancers/load_balancers.py +493 -521
  62. gcore/resources/cloud/load_balancers/metrics.py +8 -12
  63. gcore/resources/cloud/load_balancers/pools/health_monitors.py +4 -12
  64. gcore/resources/cloud/load_balancers/pools/members.py +4 -12
  65. gcore/resources/cloud/load_balancers/pools/pools.py +26 -46
  66. gcore/resources/cloud/load_balancers/statuses.py +10 -18
  67. gcore/resources/cloud/networks/networks.py +10 -30
  68. gcore/resources/cloud/networks/routers.py +14 -42
  69. gcore/resources/cloud/networks/subnets.py +15 -37
  70. gcore/resources/cloud/placement_groups.py +8 -24
  71. gcore/resources/cloud/projects.py +10 -22
  72. gcore/resources/cloud/quotas/quotas.py +6 -18
  73. gcore/resources/cloud/quotas/requests.py +8 -24
  74. gcore/resources/cloud/regions.py +4 -8
  75. gcore/resources/cloud/registries/artifacts.py +4 -12
  76. gcore/resources/cloud/registries/registries.py +10 -30
  77. gcore/resources/cloud/registries/repositories.py +4 -12
  78. gcore/resources/cloud/registries/tags.py +2 -6
  79. gcore/resources/cloud/registries/users.py +12 -36
  80. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +114 -25
  81. gcore/resources/cloud/reserved_fixed_ips/vip.py +10 -30
  82. gcore/resources/cloud/secrets.py +8 -24
  83. gcore/resources/cloud/security_groups/rules.py +6 -18
  84. gcore/resources/cloud/security_groups/security_groups.py +14 -42
  85. gcore/resources/cloud/ssh_keys.py +10 -30
  86. gcore/resources/cloud/tasks.py +14 -26
  87. gcore/resources/cloud/usage_reports.py +18 -24
  88. gcore/resources/cloud/users/role_assignments.py +8 -24
  89. gcore/resources/cloud/volumes.py +20 -60
  90. gcore/resources/dns/dns.py +4 -8
  91. gcore/resources/dns/locations.py +8 -20
  92. gcore/resources/dns/metrics.py +2 -6
  93. gcore/resources/dns/pickers/pickers.py +2 -2
  94. gcore/resources/dns/pickers/presets.py +2 -6
  95. gcore/resources/dns/zones/dnssec.py +4 -12
  96. gcore/resources/dns/zones/rrsets.py +12 -36
  97. gcore/resources/dns/zones/zones.py +22 -58
  98. gcore/resources/fastedge/apps/apps.py +12 -28
  99. gcore/resources/fastedge/apps/logs.py +2 -6
  100. gcore/resources/fastedge/binaries.py +8 -24
  101. gcore/resources/fastedge/fastedge.py +2 -2
  102. gcore/resources/fastedge/kv_stores.py +10 -22
  103. gcore/resources/fastedge/secrets.py +12 -36
  104. gcore/resources/fastedge/statistics.py +4 -12
  105. gcore/resources/fastedge/templates.py +10 -30
  106. gcore/resources/iam/api_tokens.py +12 -26
  107. gcore/resources/iam/iam.py +2 -2
  108. gcore/resources/iam/users.py +10 -26
  109. gcore/resources/security/bgp_announces.py +4 -12
  110. gcore/resources/security/events.py +2 -6
  111. gcore/resources/security/profile_templates.py +2 -6
  112. gcore/resources/security/profiles.py +16 -40
  113. gcore/resources/storage/buckets/buckets.py +6 -18
  114. gcore/resources/storage/buckets/cors.py +4 -12
  115. gcore/resources/storage/buckets/lifecycle.py +4 -12
  116. gcore/resources/storage/buckets/policy.py +6 -18
  117. gcore/resources/storage/credentials.py +2 -6
  118. gcore/resources/storage/locations.py +2 -6
  119. gcore/resources/storage/statistics.py +4 -12
  120. gcore/resources/storage/storage.py +16 -48
  121. gcore/resources/streaming/ai_tasks.py +10 -18
  122. gcore/resources/streaming/broadcasts.py +12 -36
  123. gcore/resources/streaming/directories.py +10 -30
  124. gcore/resources/streaming/players.py +12 -28
  125. gcore/resources/streaming/playlists.py +12 -36
  126. gcore/resources/streaming/quality_sets.py +4 -12
  127. gcore/resources/streaming/restreams.py +10 -30
  128. gcore/resources/streaming/statistics.py +46 -138
  129. gcore/resources/streaming/streams/overlays.py +12 -36
  130. gcore/resources/streaming/streams/streams.py +20 -52
  131. gcore/resources/streaming/videos/subtitles.py +10 -30
  132. gcore/resources/streaming/videos/videos.py +16 -40
  133. gcore/resources/waap/advanced_rules.py +2 -6
  134. gcore/resources/waap/custom_page_sets.py +12 -36
  135. gcore/resources/waap/domains/advanced_rules.py +12 -36
  136. gcore/resources/waap/domains/api_discovery.py +12 -36
  137. gcore/resources/waap/domains/api_path_groups.py +2 -6
  138. gcore/resources/waap/domains/api_paths.py +10 -30
  139. gcore/resources/waap/domains/custom_rules.py +14 -42
  140. gcore/resources/waap/domains/domains.py +12 -32
  141. gcore/resources/waap/domains/firewall_rules.py +14 -42
  142. gcore/resources/waap/domains/insight_silences.py +10 -30
  143. gcore/resources/waap/domains/insights.py +6 -18
  144. gcore/resources/waap/domains/settings.py +4 -12
  145. gcore/resources/waap/domains/statistics.py +12 -36
  146. gcore/resources/waap/insights.py +2 -6
  147. gcore/resources/waap/ip_info/ip_info.py +16 -48
  148. gcore/resources/waap/ip_info/metrics.py +2 -6
  149. gcore/resources/waap/organizations.py +2 -6
  150. gcore/resources/waap/statistics.py +2 -6
  151. gcore/resources/waap/tags.py +2 -2
  152. gcore/resources/waap/waap.py +2 -2
  153. gcore/types/cdn/cdn_resource.py +20 -0
  154. gcore/types/cdn/logs/__init__.py +0 -4
  155. gcore/types/cdn/logs_aggregated_stats.py +1 -1
  156. gcore/types/cdn/resource_create_params.py +20 -0
  157. gcore/types/cdn/resource_replace_params.py +20 -0
  158. gcore/types/cdn/resource_update_params.py +20 -0
  159. gcore/types/cdn/resources/cdn_resource_rule.py +20 -0
  160. gcore/types/cdn/resources/rule_create_params.py +20 -0
  161. gcore/types/cdn/resources/rule_replace_params.py +20 -0
  162. gcore/types/cdn/resources/rule_update_params.py +20 -0
  163. gcore/types/cdn/rule_template.py +20 -0
  164. gcore/types/cdn/rule_template_create_params.py +20 -0
  165. gcore/types/cdn/rule_template_replace_params.py +20 -0
  166. gcore/types/cdn/rule_template_update_params.py +20 -0
  167. gcore/types/cloud/__init__.py +2 -0
  168. gcore/types/cloud/billing_reservation.py +52 -114
  169. gcore/types/cloud/billing_reservation_list_params.py +4 -42
  170. gcore/types/cloud/billing_reservations.py +16 -0
  171. gcore/types/cloud/cost_report_get_aggregated_params.py +2 -2
  172. gcore/types/cloud/cost_report_get_detailed_params.py +2 -2
  173. gcore/types/cloud/gpu_baremetal_clusters/gpu_baremetal_flavor.py +12 -0
  174. gcore/types/cloud/inference/applications/__init__.py +1 -1
  175. gcore/types/cloud/inference/applications/{deployment_patch_params.py → deployment_update_params.py} +2 -2
  176. gcore/types/cloud/instance_list_params.py +1 -1
  177. gcore/types/cloud/instance_update_params.py +31 -3
  178. gcore/types/cloud/load_balancer_create_params.py +1 -1
  179. gcore/types/cloud/load_balancer_listener_detail.py +1 -1
  180. gcore/types/cloud/load_balancers/listener_create_params.py +1 -1
  181. gcore/types/cloud/load_balancers/listener_list_params.py +1 -1
  182. gcore/types/cloud/load_balancers/pool_create_params.py +1 -1
  183. gcore/types/cloud/load_balancers/pool_list_params.py +1 -1
  184. gcore/types/cloud/quota_get_all_response.py +8 -8
  185. gcore/types/cloud/quota_get_by_region_response.py +8 -8
  186. gcore/types/cloud/quotas/request_create_params.py +4 -4
  187. gcore/types/cloud/quotas/request_get_response.py +4 -4
  188. gcore/types/cloud/quotas/request_list_response.py +4 -4
  189. gcore/types/cloud/reserved_fixed_ip_update_params.py +16 -0
  190. gcore/types/cloud/task_list_params.py +3 -3
  191. gcore/types/cloud/usage_report_get_params.py +2 -2
  192. gcore/types/iam/account_overview.py +24 -26
  193. gcore/types/iam/api_token.py +24 -24
  194. gcore/types/iam/api_token_create_params.py +2 -1
  195. gcore/types/iam/api_token_list.py +24 -24
  196. gcore/types/iam/user_detailed.py +15 -15
  197. gcore/types/iam/user_invite.py +2 -4
  198. gcore/types/iam/user_update.py +15 -15
  199. gcore/types/security/profile_create_params.py +2 -2
  200. {gcore-0.14.0.dist-info → gcore-0.16.0.dist-info}/METADATA +1 -1
  201. {gcore-0.14.0.dist-info → gcore-0.16.0.dist-info}/RECORD +203 -205
  202. gcore/resources/cdn/logs/settings.py +0 -1081
  203. gcore/types/cdn/logs/log_settings.py +0 -172
  204. gcore/types/cdn/logs/setting_create_params.py +0 -200
  205. gcore/types/cdn/logs/setting_update_params.py +0 -200
  206. {gcore-0.14.0.dist-info → gcore-0.16.0.dist-info}/WHEEL +0 -0
  207. {gcore-0.14.0.dist-info → gcore-0.16.0.dist-info}/licenses/LICENSE +0 -0
@@ -68,6 +68,7 @@ from ....types.cloud.console import Console
68
68
  from ....types.cloud.instance import Instance
69
69
  from ....types.cloud.task_id_list import TaskIDList
70
70
  from ....types.cloud.instance_interface import InstanceInterface
71
+ from ....types.cloud.tag_update_map_param import TagUpdateMapParam
71
72
 
72
73
  __all__ = ["InstancesResource", "AsyncInstancesResource"]
73
74
 
@@ -235,9 +236,7 @@ class InstancesResource(SyncAPIResource):
235
236
  if region_id is None:
236
237
  region_id = self._client._get_cloud_region_id_path_param()
237
238
  return self._post(
238
- f"/cloud/v2/instances/{project_id}/{region_id}"
239
- if self._client._base_url_overridden
240
- else f"https://api.gcore.com//cloud/v2/instances/{project_id}/{region_id}",
239
+ f"/cloud/v2/instances/{project_id}/{region_id}",
241
240
  body=maybe_transform(
242
241
  {
243
242
  "flavor": flavor,
@@ -339,7 +338,8 @@ class InstancesResource(SyncAPIResource):
339
338
  *,
340
339
  project_id: int | None = None,
341
340
  region_id: int | None = None,
342
- name: str,
341
+ name: str | Omit = omit,
342
+ tags: Optional[TagUpdateMapParam] | Omit = omit,
343
343
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
344
344
  # The extra values given here take precedence over values defined on the client or passed to this method.
345
345
  extra_headers: Headers | None = None,
@@ -348,7 +348,7 @@ class InstancesResource(SyncAPIResource):
348
348
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
349
349
  ) -> Instance:
350
350
  """
351
- Rename instance
351
+ Rename instance or update tags
352
352
 
353
353
  Args:
354
354
  project_id: Project ID
@@ -357,7 +357,29 @@ class InstancesResource(SyncAPIResource):
357
357
 
358
358
  instance_id: Instance ID
359
359
 
360
- name: Name.
360
+ name: Name
361
+
362
+ tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide
363
+ key-value pairs to add or update tags. Set tag values to `null` to remove tags.
364
+ Unspecified tags remain unchanged. Read-only tags are always preserved and
365
+ cannot be modified.
366
+
367
+ **Examples:**
368
+
369
+ - **Add/update tags:**
370
+ `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
371
+ updates existing ones.
372
+ - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
373
+ - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
374
+ tags are preserved).
375
+ - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
376
+ specified tags.
377
+ - **Mixed operations:**
378
+ `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
379
+ adds/updates 'environment' and '`cost_center`' while removing
380
+ '`deprecated_tag`', preserving other existing tags.
381
+ - **Replace all:** first delete existing tags with null values, then add new
382
+ ones in the same request.
361
383
 
362
384
  extra_headers: Send extra headers
363
385
 
@@ -374,10 +396,14 @@ class InstancesResource(SyncAPIResource):
374
396
  if not instance_id:
375
397
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
376
398
  return self._patch(
377
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}"
378
- if self._client._base_url_overridden
379
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}",
380
- body=maybe_transform({"name": name}, instance_update_params.InstanceUpdateParams),
399
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}",
400
+ body=maybe_transform(
401
+ {
402
+ "name": name,
403
+ "tags": tags,
404
+ },
405
+ instance_update_params.InstanceUpdateParams,
406
+ ),
381
407
  options=make_request_options(
382
408
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
383
409
  ),
@@ -405,7 +431,8 @@ class InstancesResource(SyncAPIResource):
405
431
  offset: int | Omit = omit,
406
432
  only_isolated: bool | Omit = omit,
407
433
  only_with_fixed_external_ip: bool | Omit = omit,
408
- order_by: Literal["created.asc", "created.desc", "name.asc", "name.desc"] | Omit = omit,
434
+ order_by: Literal["created.asc", "created.desc", "name.asc", "name.desc", "status.asc", "status.desc"]
435
+ | Omit = omit,
409
436
  profile_name: str | Omit = omit,
410
437
  protection_status: Literal["Active", "Queued", "Error"] | Omit = omit,
411
438
  status: Literal[
@@ -525,9 +552,7 @@ class InstancesResource(SyncAPIResource):
525
552
  if region_id is None:
526
553
  region_id = self._client._get_cloud_region_id_path_param()
527
554
  return self._get_api_list(
528
- f"/cloud/v1/instances/{project_id}/{region_id}"
529
- if self._client._base_url_overridden
530
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}",
555
+ f"/cloud/v1/instances/{project_id}/{region_id}",
531
556
  page=SyncOffsetPage[Instance],
532
557
  options=make_request_options(
533
558
  extra_headers=extra_headers,
@@ -621,9 +646,7 @@ class InstancesResource(SyncAPIResource):
621
646
  if not instance_id:
622
647
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
623
648
  return self._delete(
624
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}"
625
- if self._client._base_url_overridden
626
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}",
649
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}",
627
650
  options=make_request_options(
628
651
  extra_headers=extra_headers,
629
652
  extra_query=extra_query,
@@ -774,9 +797,7 @@ class InstancesResource(SyncAPIResource):
774
797
  if not instance_id:
775
798
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
776
799
  return self._post(
777
- f"/cloud/v2/instances/{project_id}/{region_id}/{instance_id}/action"
778
- if self._client._base_url_overridden
779
- else f"https://api.gcore.com//cloud/v2/instances/{project_id}/{region_id}/{instance_id}/action",
800
+ f"/cloud/v2/instances/{project_id}/{region_id}/{instance_id}/action",
780
801
  body=maybe_transform(
781
802
  {
782
803
  "action": action,
@@ -946,9 +967,7 @@ class InstancesResource(SyncAPIResource):
946
967
  if not instance_id:
947
968
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
948
969
  return self._post(
949
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/put_into_servergroup"
950
- if self._client._base_url_overridden
951
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/put_into_servergroup",
970
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/put_into_servergroup",
952
971
  body=maybe_transform(
953
972
  {"servergroup_id": servergroup_id},
954
973
  instance_add_to_placement_group_params.InstanceAddToPlacementGroupParams,
@@ -1043,9 +1062,7 @@ class InstancesResource(SyncAPIResource):
1043
1062
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
1044
1063
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
1045
1064
  return self._post(
1046
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/addsecuritygroup"
1047
- if self._client._base_url_overridden
1048
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/addsecuritygroup",
1065
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/addsecuritygroup",
1049
1066
  body=maybe_transform(
1050
1067
  {
1051
1068
  "name": name,
@@ -1091,9 +1108,7 @@ class InstancesResource(SyncAPIResource):
1091
1108
  if not port_id:
1092
1109
  raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}")
1093
1110
  return self._post(
1094
- f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/disable_port_security"
1095
- if self._client._base_url_overridden
1096
- else f"https://api.gcore.com//cloud/v1/ports/{project_id}/{region_id}/{port_id}/disable_port_security",
1111
+ f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/disable_port_security",
1097
1112
  options=make_request_options(
1098
1113
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
1099
1114
  ),
@@ -1132,9 +1147,7 @@ class InstancesResource(SyncAPIResource):
1132
1147
  if not port_id:
1133
1148
  raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}")
1134
1149
  return self._post(
1135
- f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/enable_port_security"
1136
- if self._client._base_url_overridden
1137
- else f"https://api.gcore.com//cloud/v1/ports/{project_id}/{region_id}/{port_id}/enable_port_security",
1150
+ f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/enable_port_security",
1138
1151
  options=make_request_options(
1139
1152
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
1140
1153
  ),
@@ -1190,9 +1203,7 @@ class InstancesResource(SyncAPIResource):
1190
1203
  if not instance_id:
1191
1204
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
1192
1205
  return self._get(
1193
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}"
1194
- if self._client._base_url_overridden
1195
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}",
1206
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}",
1196
1207
  options=make_request_options(
1197
1208
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
1198
1209
  ),
@@ -1234,9 +1245,7 @@ class InstancesResource(SyncAPIResource):
1234
1245
  if not instance_id:
1235
1246
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
1236
1247
  return self._get(
1237
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/get_console"
1238
- if self._client._base_url_overridden
1239
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/get_console",
1248
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/get_console",
1240
1249
  options=make_request_options(
1241
1250
  extra_headers=extra_headers,
1242
1251
  extra_query=extra_query,
@@ -1283,9 +1292,7 @@ class InstancesResource(SyncAPIResource):
1283
1292
  if not instance_id:
1284
1293
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
1285
1294
  return self._post(
1286
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/remove_from_servergroup"
1287
- if self._client._base_url_overridden
1288
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/remove_from_servergroup",
1295
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/remove_from_servergroup",
1289
1296
  options=make_request_options(
1290
1297
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
1291
1298
  ),
@@ -1367,9 +1374,7 @@ class InstancesResource(SyncAPIResource):
1367
1374
  if not instance_id:
1368
1375
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
1369
1376
  return self._post(
1370
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/changeflavor"
1371
- if self._client._base_url_overridden
1372
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/changeflavor",
1377
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/changeflavor",
1373
1378
  body=maybe_transform({"flavor_id": flavor_id}, instance_resize_params.InstanceResizeParams),
1374
1379
  options=make_request_options(
1375
1380
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
@@ -1461,9 +1466,7 @@ class InstancesResource(SyncAPIResource):
1461
1466
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
1462
1467
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
1463
1468
  return self._post(
1464
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/delsecuritygroup"
1465
- if self._client._base_url_overridden
1466
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/delsecuritygroup",
1469
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/delsecuritygroup",
1467
1470
  body=maybe_transform(
1468
1471
  {
1469
1472
  "name": name,
@@ -1641,9 +1644,7 @@ class AsyncInstancesResource(AsyncAPIResource):
1641
1644
  if region_id is None:
1642
1645
  region_id = self._client._get_cloud_region_id_path_param()
1643
1646
  return await self._post(
1644
- f"/cloud/v2/instances/{project_id}/{region_id}"
1645
- if self._client._base_url_overridden
1646
- else f"https://api.gcore.com//cloud/v2/instances/{project_id}/{region_id}",
1647
+ f"/cloud/v2/instances/{project_id}/{region_id}",
1647
1648
  body=await async_maybe_transform(
1648
1649
  {
1649
1650
  "flavor": flavor,
@@ -1745,7 +1746,8 @@ class AsyncInstancesResource(AsyncAPIResource):
1745
1746
  *,
1746
1747
  project_id: int | None = None,
1747
1748
  region_id: int | None = None,
1748
- name: str,
1749
+ name: str | Omit = omit,
1750
+ tags: Optional[TagUpdateMapParam] | Omit = omit,
1749
1751
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1750
1752
  # The extra values given here take precedence over values defined on the client or passed to this method.
1751
1753
  extra_headers: Headers | None = None,
@@ -1754,7 +1756,7 @@ class AsyncInstancesResource(AsyncAPIResource):
1754
1756
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
1755
1757
  ) -> Instance:
1756
1758
  """
1757
- Rename instance
1759
+ Rename instance or update tags
1758
1760
 
1759
1761
  Args:
1760
1762
  project_id: Project ID
@@ -1763,7 +1765,29 @@ class AsyncInstancesResource(AsyncAPIResource):
1763
1765
 
1764
1766
  instance_id: Instance ID
1765
1767
 
1766
- name: Name.
1768
+ name: Name
1769
+
1770
+ tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide
1771
+ key-value pairs to add or update tags. Set tag values to `null` to remove tags.
1772
+ Unspecified tags remain unchanged. Read-only tags are always preserved and
1773
+ cannot be modified.
1774
+
1775
+ **Examples:**
1776
+
1777
+ - **Add/update tags:**
1778
+ `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
1779
+ updates existing ones.
1780
+ - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
1781
+ - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
1782
+ tags are preserved).
1783
+ - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
1784
+ specified tags.
1785
+ - **Mixed operations:**
1786
+ `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
1787
+ adds/updates 'environment' and '`cost_center`' while removing
1788
+ '`deprecated_tag`', preserving other existing tags.
1789
+ - **Replace all:** first delete existing tags with null values, then add new
1790
+ ones in the same request.
1767
1791
 
1768
1792
  extra_headers: Send extra headers
1769
1793
 
@@ -1780,10 +1804,14 @@ class AsyncInstancesResource(AsyncAPIResource):
1780
1804
  if not instance_id:
1781
1805
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
1782
1806
  return await self._patch(
1783
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}"
1784
- if self._client._base_url_overridden
1785
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}",
1786
- body=await async_maybe_transform({"name": name}, instance_update_params.InstanceUpdateParams),
1807
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}",
1808
+ body=await async_maybe_transform(
1809
+ {
1810
+ "name": name,
1811
+ "tags": tags,
1812
+ },
1813
+ instance_update_params.InstanceUpdateParams,
1814
+ ),
1787
1815
  options=make_request_options(
1788
1816
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
1789
1817
  ),
@@ -1811,7 +1839,8 @@ class AsyncInstancesResource(AsyncAPIResource):
1811
1839
  offset: int | Omit = omit,
1812
1840
  only_isolated: bool | Omit = omit,
1813
1841
  only_with_fixed_external_ip: bool | Omit = omit,
1814
- order_by: Literal["created.asc", "created.desc", "name.asc", "name.desc"] | Omit = omit,
1842
+ order_by: Literal["created.asc", "created.desc", "name.asc", "name.desc", "status.asc", "status.desc"]
1843
+ | Omit = omit,
1815
1844
  profile_name: str | Omit = omit,
1816
1845
  protection_status: Literal["Active", "Queued", "Error"] | Omit = omit,
1817
1846
  status: Literal[
@@ -1931,9 +1960,7 @@ class AsyncInstancesResource(AsyncAPIResource):
1931
1960
  if region_id is None:
1932
1961
  region_id = self._client._get_cloud_region_id_path_param()
1933
1962
  return self._get_api_list(
1934
- f"/cloud/v1/instances/{project_id}/{region_id}"
1935
- if self._client._base_url_overridden
1936
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}",
1963
+ f"/cloud/v1/instances/{project_id}/{region_id}",
1937
1964
  page=AsyncOffsetPage[Instance],
1938
1965
  options=make_request_options(
1939
1966
  extra_headers=extra_headers,
@@ -2027,9 +2054,7 @@ class AsyncInstancesResource(AsyncAPIResource):
2027
2054
  if not instance_id:
2028
2055
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
2029
2056
  return await self._delete(
2030
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}"
2031
- if self._client._base_url_overridden
2032
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}",
2057
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}",
2033
2058
  options=make_request_options(
2034
2059
  extra_headers=extra_headers,
2035
2060
  extra_query=extra_query,
@@ -2180,9 +2205,7 @@ class AsyncInstancesResource(AsyncAPIResource):
2180
2205
  if not instance_id:
2181
2206
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
2182
2207
  return await self._post(
2183
- f"/cloud/v2/instances/{project_id}/{region_id}/{instance_id}/action"
2184
- if self._client._base_url_overridden
2185
- else f"https://api.gcore.com//cloud/v2/instances/{project_id}/{region_id}/{instance_id}/action",
2208
+ f"/cloud/v2/instances/{project_id}/{region_id}/{instance_id}/action",
2186
2209
  body=await async_maybe_transform(
2187
2210
  {
2188
2211
  "action": action,
@@ -2352,9 +2375,7 @@ class AsyncInstancesResource(AsyncAPIResource):
2352
2375
  if not instance_id:
2353
2376
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
2354
2377
  return await self._post(
2355
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/put_into_servergroup"
2356
- if self._client._base_url_overridden
2357
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/put_into_servergroup",
2378
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/put_into_servergroup",
2358
2379
  body=await async_maybe_transform(
2359
2380
  {"servergroup_id": servergroup_id},
2360
2381
  instance_add_to_placement_group_params.InstanceAddToPlacementGroupParams,
@@ -2449,9 +2470,7 @@ class AsyncInstancesResource(AsyncAPIResource):
2449
2470
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
2450
2471
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
2451
2472
  return await self._post(
2452
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/addsecuritygroup"
2453
- if self._client._base_url_overridden
2454
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/addsecuritygroup",
2473
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/addsecuritygroup",
2455
2474
  body=await async_maybe_transform(
2456
2475
  {
2457
2476
  "name": name,
@@ -2497,9 +2516,7 @@ class AsyncInstancesResource(AsyncAPIResource):
2497
2516
  if not port_id:
2498
2517
  raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}")
2499
2518
  return await self._post(
2500
- f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/disable_port_security"
2501
- if self._client._base_url_overridden
2502
- else f"https://api.gcore.com//cloud/v1/ports/{project_id}/{region_id}/{port_id}/disable_port_security",
2519
+ f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/disable_port_security",
2503
2520
  options=make_request_options(
2504
2521
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
2505
2522
  ),
@@ -2538,9 +2555,7 @@ class AsyncInstancesResource(AsyncAPIResource):
2538
2555
  if not port_id:
2539
2556
  raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}")
2540
2557
  return await self._post(
2541
- f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/enable_port_security"
2542
- if self._client._base_url_overridden
2543
- else f"https://api.gcore.com//cloud/v1/ports/{project_id}/{region_id}/{port_id}/enable_port_security",
2558
+ f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/enable_port_security",
2544
2559
  options=make_request_options(
2545
2560
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
2546
2561
  ),
@@ -2596,9 +2611,7 @@ class AsyncInstancesResource(AsyncAPIResource):
2596
2611
  if not instance_id:
2597
2612
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
2598
2613
  return await self._get(
2599
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}"
2600
- if self._client._base_url_overridden
2601
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}",
2614
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}",
2602
2615
  options=make_request_options(
2603
2616
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
2604
2617
  ),
@@ -2640,9 +2653,7 @@ class AsyncInstancesResource(AsyncAPIResource):
2640
2653
  if not instance_id:
2641
2654
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
2642
2655
  return await self._get(
2643
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/get_console"
2644
- if self._client._base_url_overridden
2645
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/get_console",
2656
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/get_console",
2646
2657
  options=make_request_options(
2647
2658
  extra_headers=extra_headers,
2648
2659
  extra_query=extra_query,
@@ -2689,9 +2700,7 @@ class AsyncInstancesResource(AsyncAPIResource):
2689
2700
  if not instance_id:
2690
2701
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
2691
2702
  return await self._post(
2692
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/remove_from_servergroup"
2693
- if self._client._base_url_overridden
2694
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/remove_from_servergroup",
2703
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/remove_from_servergroup",
2695
2704
  options=make_request_options(
2696
2705
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
2697
2706
  ),
@@ -2773,9 +2782,7 @@ class AsyncInstancesResource(AsyncAPIResource):
2773
2782
  if not instance_id:
2774
2783
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
2775
2784
  return await self._post(
2776
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/changeflavor"
2777
- if self._client._base_url_overridden
2778
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/changeflavor",
2785
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/changeflavor",
2779
2786
  body=await async_maybe_transform({"flavor_id": flavor_id}, instance_resize_params.InstanceResizeParams),
2780
2787
  options=make_request_options(
2781
2788
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
@@ -2867,9 +2874,7 @@ class AsyncInstancesResource(AsyncAPIResource):
2867
2874
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
2868
2875
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
2869
2876
  return await self._post(
2870
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/delsecuritygroup"
2871
- if self._client._base_url_overridden
2872
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/delsecuritygroup",
2877
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/delsecuritygroup",
2873
2878
  body=await async_maybe_transform(
2874
2879
  {
2875
2880
  "name": name,
@@ -77,9 +77,7 @@ class InterfacesResource(SyncAPIResource):
77
77
  if not instance_id:
78
78
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
79
79
  return self._get(
80
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/interfaces"
81
- if self._client._base_url_overridden
82
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/interfaces",
80
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/interfaces",
83
81
  options=make_request_options(
84
82
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
85
83
  ),
@@ -311,9 +309,7 @@ class InterfacesResource(SyncAPIResource):
311
309
  if not instance_id:
312
310
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
313
311
  return self._post(
314
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/attach_interface"
315
- if self._client._base_url_overridden
316
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/attach_interface",
312
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/attach_interface",
317
313
  body=maybe_transform(
318
314
  {
319
315
  "ddos_profile": ddos_profile,
@@ -665,9 +661,7 @@ class InterfacesResource(SyncAPIResource):
665
661
  if not instance_id:
666
662
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
667
663
  return self._post(
668
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/detach_interface"
669
- if self._client._base_url_overridden
670
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/detach_interface",
664
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/detach_interface",
671
665
  body=maybe_transform(
672
666
  {
673
667
  "ip_address": ip_address,
@@ -734,9 +728,7 @@ class AsyncInterfacesResource(AsyncAPIResource):
734
728
  if not instance_id:
735
729
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
736
730
  return await self._get(
737
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/interfaces"
738
- if self._client._base_url_overridden
739
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/interfaces",
731
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/interfaces",
740
732
  options=make_request_options(
741
733
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
742
734
  ),
@@ -968,9 +960,7 @@ class AsyncInterfacesResource(AsyncAPIResource):
968
960
  if not instance_id:
969
961
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
970
962
  return await self._post(
971
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/attach_interface"
972
- if self._client._base_url_overridden
973
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/attach_interface",
963
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/attach_interface",
974
964
  body=await async_maybe_transform(
975
965
  {
976
966
  "ddos_profile": ddos_profile,
@@ -1244,9 +1234,7 @@ class AsyncInterfacesResource(AsyncAPIResource):
1244
1234
  if not instance_id:
1245
1235
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
1246
1236
  return await self._post(
1247
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/detach_interface"
1248
- if self._client._base_url_overridden
1249
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/detach_interface",
1237
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/detach_interface",
1250
1238
  body=await async_maybe_transform(
1251
1239
  {
1252
1240
  "ip_address": ip_address,
@@ -87,9 +87,7 @@ class MetricsResource(SyncAPIResource):
87
87
  if not instance_id:
88
88
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
89
89
  return self._post(
90
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/metrics"
91
- if self._client._base_url_overridden
92
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/metrics",
90
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/metrics",
93
91
  body=maybe_transform(
94
92
  {
95
93
  "time_interval": time_interval,
@@ -168,9 +166,7 @@ class AsyncMetricsResource(AsyncAPIResource):
168
166
  if not instance_id:
169
167
  raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}")
170
168
  return await self._post(
171
- f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/metrics"
172
- if self._client._base_url_overridden
173
- else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/metrics",
169
+ f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/metrics",
174
170
  body=await async_maybe_transform(
175
171
  {
176
172
  "time_interval": time_interval,
@@ -70,9 +70,7 @@ class IPRangesResource(SyncAPIResource):
70
70
  duplicate prefixes are not returned.
71
71
  """
72
72
  return self._get(
73
- "/cloud/public/v1/ipranges/egress"
74
- if self._client._base_url_overridden
75
- else "https://api.gcore.com//cloud/public/v1/ipranges/egress",
73
+ "/cloud/public/v1/ipranges/egress",
76
74
  options=make_request_options(
77
75
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
78
76
  ),
@@ -131,9 +129,7 @@ class AsyncIPRangesResource(AsyncAPIResource):
131
129
  duplicate prefixes are not returned.
132
130
  """
133
131
  return await self._get(
134
- "/cloud/public/v1/ipranges/egress"
135
- if self._client._base_url_overridden
136
- else "https://api.gcore.com//cloud/public/v1/ipranges/egress",
132
+ "/cloud/public/v1/ipranges/egress",
137
133
  options=make_request_options(
138
134
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
139
135
  ),