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.
- gcore/_client.py +2 -8
- gcore/_version.py +1 -1
- gcore/resources/cdn/audit_log.py +4 -12
- gcore/resources/cdn/cdn.py +10 -18
- gcore/resources/cdn/certificates.py +16 -40
- gcore/resources/cdn/ip_ranges.py +4 -8
- gcore/resources/cdn/logs/__init__.py +0 -14
- gcore/resources/cdn/logs/logs.py +4 -44
- gcore/resources/cdn/logs_uploader/configs.py +14 -42
- gcore/resources/cdn/logs_uploader/policies.py +14 -42
- gcore/resources/cdn/logs_uploader/targets.py +14 -42
- gcore/resources/cdn/metrics.py +2 -6
- gcore/resources/cdn/network_capacity.py +2 -6
- gcore/resources/cdn/origin_groups.py +12 -32
- gcore/resources/cdn/resources/resources.py +18 -46
- gcore/resources/cdn/resources/rules.py +12 -36
- gcore/resources/cdn/resources/shield.py +4 -12
- gcore/resources/cdn/rule_templates.py +12 -36
- gcore/resources/cdn/shields.py +2 -6
- gcore/resources/cdn/statistics.py +16 -40
- gcore/resources/cdn/trusted_ca_certificates.py +10 -30
- gcore/resources/cloud/audit_logs.py +2 -6
- gcore/resources/cloud/baremetal/flavors.py +2 -6
- gcore/resources/cloud/baremetal/images.py +2 -6
- gcore/resources/cloud/baremetal/servers.py +6 -18
- gcore/resources/cloud/billing_reservations.py +25 -208
- gcore/resources/cloud/cost_reports.py +44 -62
- gcore/resources/cloud/file_shares/access_rules.py +6 -18
- gcore/resources/cloud/file_shares/file_shares.py +37 -44
- gcore/resources/cloud/floating_ips.py +14 -42
- gcore/resources/cloud/gpu_baremetal_clusters/flavors.py +2 -6
- gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +18 -54
- gcore/resources/cloud/gpu_baremetal_clusters/images.py +8 -24
- gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py +2 -6
- gcore/resources/cloud/gpu_baremetal_clusters/servers.py +14 -42
- gcore/resources/cloud/inference/api_keys.py +10 -30
- gcore/resources/cloud/inference/applications/deployments.py +135 -155
- gcore/resources/cloud/inference/applications/templates.py +4 -12
- gcore/resources/cloud/inference/deployments/deployments.py +16 -48
- gcore/resources/cloud/inference/deployments/logs.py +2 -6
- gcore/resources/cloud/inference/flavors.py +4 -12
- gcore/resources/cloud/inference/inference.py +2 -6
- gcore/resources/cloud/inference/registry_credentials.py +10 -30
- gcore/resources/cloud/inference/secrets.py +10 -30
- gcore/resources/cloud/instances/flavors.py +2 -6
- gcore/resources/cloud/instances/images.py +12 -36
- gcore/resources/cloud/instances/instances.py +99 -94
- gcore/resources/cloud/instances/interfaces.py +6 -18
- gcore/resources/cloud/instances/metrics.py +2 -6
- gcore/resources/cloud/ip_ranges.py +2 -6
- gcore/resources/cloud/k8s/clusters/clusters.py +18 -54
- gcore/resources/cloud/k8s/clusters/nodes.py +4 -12
- gcore/resources/cloud/k8s/clusters/pools/nodes.py +4 -12
- gcore/resources/cloud/k8s/clusters/pools/pools.py +12 -36
- gcore/resources/cloud/k8s/flavors.py +2 -6
- gcore/resources/cloud/k8s/k8s.py +2 -6
- gcore/resources/cloud/load_balancers/flavors.py +2 -6
- gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +10 -30
- gcore/resources/cloud/load_balancers/l7_policies/rules.py +10 -30
- gcore/resources/cloud/load_balancers/listeners.py +26 -46
- gcore/resources/cloud/load_balancers/load_balancers.py +493 -521
- gcore/resources/cloud/load_balancers/metrics.py +8 -12
- gcore/resources/cloud/load_balancers/pools/health_monitors.py +4 -12
- gcore/resources/cloud/load_balancers/pools/members.py +4 -12
- gcore/resources/cloud/load_balancers/pools/pools.py +26 -46
- gcore/resources/cloud/load_balancers/statuses.py +10 -18
- gcore/resources/cloud/networks/networks.py +10 -30
- gcore/resources/cloud/networks/routers.py +14 -42
- gcore/resources/cloud/networks/subnets.py +15 -37
- gcore/resources/cloud/placement_groups.py +8 -24
- gcore/resources/cloud/projects.py +10 -22
- gcore/resources/cloud/quotas/quotas.py +6 -18
- gcore/resources/cloud/quotas/requests.py +8 -24
- gcore/resources/cloud/regions.py +4 -8
- gcore/resources/cloud/registries/artifacts.py +4 -12
- gcore/resources/cloud/registries/registries.py +10 -30
- gcore/resources/cloud/registries/repositories.py +4 -12
- gcore/resources/cloud/registries/tags.py +2 -6
- gcore/resources/cloud/registries/users.py +12 -36
- gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +114 -25
- gcore/resources/cloud/reserved_fixed_ips/vip.py +10 -30
- gcore/resources/cloud/secrets.py +8 -24
- gcore/resources/cloud/security_groups/rules.py +6 -18
- gcore/resources/cloud/security_groups/security_groups.py +14 -42
- gcore/resources/cloud/ssh_keys.py +10 -30
- gcore/resources/cloud/tasks.py +14 -26
- gcore/resources/cloud/usage_reports.py +18 -24
- gcore/resources/cloud/users/role_assignments.py +8 -24
- gcore/resources/cloud/volumes.py +20 -60
- gcore/resources/dns/dns.py +4 -8
- gcore/resources/dns/locations.py +8 -20
- gcore/resources/dns/metrics.py +2 -6
- gcore/resources/dns/pickers/pickers.py +2 -2
- gcore/resources/dns/pickers/presets.py +2 -6
- gcore/resources/dns/zones/dnssec.py +4 -12
- gcore/resources/dns/zones/rrsets.py +12 -36
- gcore/resources/dns/zones/zones.py +22 -58
- gcore/resources/fastedge/apps/apps.py +12 -28
- gcore/resources/fastedge/apps/logs.py +2 -6
- gcore/resources/fastedge/binaries.py +8 -24
- gcore/resources/fastedge/fastedge.py +2 -2
- gcore/resources/fastedge/kv_stores.py +10 -22
- gcore/resources/fastedge/secrets.py +12 -36
- gcore/resources/fastedge/statistics.py +4 -12
- gcore/resources/fastedge/templates.py +10 -30
- gcore/resources/iam/api_tokens.py +12 -26
- gcore/resources/iam/iam.py +2 -2
- gcore/resources/iam/users.py +10 -26
- gcore/resources/security/bgp_announces.py +4 -12
- gcore/resources/security/events.py +2 -6
- gcore/resources/security/profile_templates.py +2 -6
- gcore/resources/security/profiles.py +16 -40
- gcore/resources/storage/buckets/buckets.py +6 -18
- gcore/resources/storage/buckets/cors.py +4 -12
- gcore/resources/storage/buckets/lifecycle.py +4 -12
- gcore/resources/storage/buckets/policy.py +6 -18
- gcore/resources/storage/credentials.py +2 -6
- gcore/resources/storage/locations.py +2 -6
- gcore/resources/storage/statistics.py +4 -12
- gcore/resources/storage/storage.py +16 -48
- gcore/resources/streaming/ai_tasks.py +10 -18
- gcore/resources/streaming/broadcasts.py +12 -36
- gcore/resources/streaming/directories.py +10 -30
- gcore/resources/streaming/players.py +12 -28
- gcore/resources/streaming/playlists.py +12 -36
- gcore/resources/streaming/quality_sets.py +4 -12
- gcore/resources/streaming/restreams.py +10 -30
- gcore/resources/streaming/statistics.py +46 -138
- gcore/resources/streaming/streams/overlays.py +12 -36
- gcore/resources/streaming/streams/streams.py +20 -52
- gcore/resources/streaming/videos/subtitles.py +10 -30
- gcore/resources/streaming/videos/videos.py +16 -40
- gcore/resources/waap/advanced_rules.py +2 -6
- gcore/resources/waap/custom_page_sets.py +12 -36
- gcore/resources/waap/domains/advanced_rules.py +12 -36
- gcore/resources/waap/domains/api_discovery.py +12 -36
- gcore/resources/waap/domains/api_path_groups.py +2 -6
- gcore/resources/waap/domains/api_paths.py +10 -30
- gcore/resources/waap/domains/custom_rules.py +14 -42
- gcore/resources/waap/domains/domains.py +12 -32
- gcore/resources/waap/domains/firewall_rules.py +14 -42
- gcore/resources/waap/domains/insight_silences.py +10 -30
- gcore/resources/waap/domains/insights.py +6 -18
- gcore/resources/waap/domains/settings.py +4 -12
- gcore/resources/waap/domains/statistics.py +12 -36
- gcore/resources/waap/insights.py +2 -6
- gcore/resources/waap/ip_info/ip_info.py +16 -48
- gcore/resources/waap/ip_info/metrics.py +2 -6
- gcore/resources/waap/organizations.py +2 -6
- gcore/resources/waap/statistics.py +2 -6
- gcore/resources/waap/tags.py +2 -2
- gcore/resources/waap/waap.py +2 -2
- gcore/types/cdn/cdn_resource.py +20 -0
- gcore/types/cdn/logs/__init__.py +0 -4
- gcore/types/cdn/logs_aggregated_stats.py +1 -1
- gcore/types/cdn/resource_create_params.py +20 -0
- gcore/types/cdn/resource_replace_params.py +20 -0
- gcore/types/cdn/resource_update_params.py +20 -0
- gcore/types/cdn/resources/cdn_resource_rule.py +20 -0
- gcore/types/cdn/resources/rule_create_params.py +20 -0
- gcore/types/cdn/resources/rule_replace_params.py +20 -0
- gcore/types/cdn/resources/rule_update_params.py +20 -0
- gcore/types/cdn/rule_template.py +20 -0
- gcore/types/cdn/rule_template_create_params.py +20 -0
- gcore/types/cdn/rule_template_replace_params.py +20 -0
- gcore/types/cdn/rule_template_update_params.py +20 -0
- gcore/types/cloud/__init__.py +2 -0
- gcore/types/cloud/billing_reservation.py +52 -114
- gcore/types/cloud/billing_reservation_list_params.py +4 -42
- gcore/types/cloud/billing_reservations.py +16 -0
- gcore/types/cloud/cost_report_get_aggregated_params.py +2 -2
- gcore/types/cloud/cost_report_get_detailed_params.py +2 -2
- gcore/types/cloud/gpu_baremetal_clusters/gpu_baremetal_flavor.py +12 -0
- gcore/types/cloud/inference/applications/__init__.py +1 -1
- gcore/types/cloud/inference/applications/{deployment_patch_params.py → deployment_update_params.py} +2 -2
- gcore/types/cloud/instance_list_params.py +1 -1
- gcore/types/cloud/instance_update_params.py +31 -3
- gcore/types/cloud/load_balancer_create_params.py +1 -1
- gcore/types/cloud/load_balancer_listener_detail.py +1 -1
- gcore/types/cloud/load_balancers/listener_create_params.py +1 -1
- gcore/types/cloud/load_balancers/listener_list_params.py +1 -1
- gcore/types/cloud/load_balancers/pool_create_params.py +1 -1
- gcore/types/cloud/load_balancers/pool_list_params.py +1 -1
- gcore/types/cloud/quota_get_all_response.py +8 -8
- gcore/types/cloud/quota_get_by_region_response.py +8 -8
- gcore/types/cloud/quotas/request_create_params.py +4 -4
- gcore/types/cloud/quotas/request_get_response.py +4 -4
- gcore/types/cloud/quotas/request_list_response.py +4 -4
- gcore/types/cloud/reserved_fixed_ip_update_params.py +16 -0
- gcore/types/cloud/task_list_params.py +3 -3
- gcore/types/cloud/usage_report_get_params.py +2 -2
- gcore/types/iam/account_overview.py +24 -26
- gcore/types/iam/api_token.py +24 -24
- gcore/types/iam/api_token_create_params.py +2 -1
- gcore/types/iam/api_token_list.py +24 -24
- gcore/types/iam/user_detailed.py +15 -15
- gcore/types/iam/user_invite.py +2 -4
- gcore/types/iam/user_update.py +15 -15
- gcore/types/security/profile_create_params.py +2 -2
- {gcore-0.14.0.dist-info → gcore-0.16.0.dist-info}/METADATA +1 -1
- {gcore-0.14.0.dist-info → gcore-0.16.0.dist-info}/RECORD +203 -205
- gcore/resources/cdn/logs/settings.py +0 -1081
- gcore/types/cdn/logs/log_settings.py +0 -172
- gcore/types/cdn/logs/setting_create_params.py +0 -200
- gcore/types/cdn/logs/setting_update_params.py +0 -200
- {gcore-0.14.0.dist-info → gcore-0.16.0.dist-info}/WHEEL +0 -0
- {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
|
-
|
|
379
|
-
|
|
380
|
-
|
|
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"
|
|
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
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
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"
|
|
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
|
),
|