gcore 0.12.0__py3-none-any.whl → 0.14.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/__init__.py +3 -1
- gcore/_base_client.py +9 -9
- gcore/_client.py +25 -10
- gcore/_models.py +10 -4
- gcore/_qs.py +7 -7
- gcore/_types.py +18 -11
- gcore/_utils/_transform.py +2 -2
- gcore/_utils/_utils.py +4 -4
- gcore/_version.py +1 -1
- gcore/pagination.py +137 -0
- gcore/resources/__init__.py +14 -0
- gcore/resources/cdn/__init__.py +201 -0
- gcore/resources/cdn/audit_log.py +406 -0
- gcore/resources/cdn/cdn.py +957 -0
- gcore/resources/cdn/certificates.py +1062 -0
- gcore/resources/cdn/ip_ranges.py +224 -0
- gcore/resources/cdn/logs/__init__.py +33 -0
- gcore/resources/cdn/logs/logs.py +1424 -0
- gcore/resources/cdn/logs/settings.py +1081 -0
- gcore/resources/cdn/logs_uploader/__init__.py +61 -0
- gcore/resources/cdn/logs_uploader/configs.py +868 -0
- gcore/resources/cdn/logs_uploader/logs_uploader.py +166 -0
- gcore/resources/cdn/logs_uploader/policies.py +1060 -0
- gcore/resources/cdn/logs_uploader/targets.py +811 -0
- gcore/resources/cdn/metrics.py +419 -0
- gcore/resources/cdn/network_capacity.py +139 -0
- gcore/resources/cdn/origin_groups.py +1496 -0
- gcore/resources/cdn/resources/__init__.py +47 -0
- gcore/resources/cdn/resources/resources.py +2060 -0
- gcore/resources/cdn/resources/rules.py +1027 -0
- gcore/resources/cdn/resources/shield.py +259 -0
- gcore/resources/cdn/rule_templates.py +883 -0
- gcore/resources/cdn/shields.py +139 -0
- gcore/resources/cdn/statistics.py +1408 -0
- gcore/resources/cdn/trusted_ca_certificates.py +592 -0
- gcore/resources/cloud/audit_logs.py +33 -29
- gcore/resources/cloud/baremetal/flavors.py +21 -17
- gcore/resources/cloud/baremetal/images.py +19 -15
- gcore/resources/cloud/baremetal/servers.py +141 -119
- gcore/resources/cloud/billing_reservations.py +41 -33
- gcore/resources/cloud/cloud.py +24 -0
- gcore/resources/cloud/cost_reports.py +149 -119
- gcore/resources/cloud/file_shares/access_rules.py +25 -13
- gcore/resources/cloud/file_shares/file_shares.py +107 -71
- gcore/resources/cloud/floating_ips.py +270 -52
- gcore/resources/cloud/gpu_baremetal_clusters/flavors.py +13 -9
- gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +275 -65
- gcore/resources/cloud/gpu_baremetal_clusters/images.py +69 -53
- gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py +9 -5
- gcore/resources/cloud/gpu_baremetal_clusters/servers.py +151 -127
- gcore/resources/cloud/inference/api_keys.py +51 -31
- gcore/resources/cloud/inference/applications/deployments.py +49 -31
- gcore/resources/cloud/inference/applications/templates.py +17 -9
- gcore/resources/cloud/inference/deployments/deployments.py +171 -139
- gcore/resources/cloud/inference/deployments/logs.py +17 -13
- gcore/resources/cloud/inference/flavors.py +21 -13
- gcore/resources/cloud/inference/inference.py +9 -5
- gcore/resources/cloud/inference/registry_credentials.py +45 -25
- gcore/resources/cloud/inference/secrets.py +45 -25
- gcore/resources/cloud/instances/flavors.py +17 -13
- gcore/resources/cloud/instances/images.py +153 -129
- gcore/resources/cloud/instances/instances.py +287 -213
- gcore/resources/cloud/instances/interfaces.py +165 -161
- gcore/resources/cloud/instances/metrics.py +9 -5
- gcore/resources/cloud/ip_ranges.py +25 -15
- gcore/resources/cloud/k8s/clusters/clusters.py +151 -87
- gcore/resources/cloud/k8s/clusters/nodes.py +19 -11
- gcore/resources/cloud/k8s/clusters/pools/nodes.py +19 -11
- gcore/resources/cloud/k8s/clusters/pools/pools.py +83 -59
- gcore/resources/cloud/k8s/flavors.py +13 -9
- gcore/resources/cloud/k8s/k8s.py +9 -5
- gcore/resources/cloud/load_balancers/flavors.py +11 -7
- gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +103 -83
- gcore/resources/cloud/load_balancers/l7_policies/rules.py +77 -57
- gcore/resources/cloud/load_balancers/listeners.py +125 -105
- gcore/resources/cloud/load_balancers/load_balancers.py +155 -123
- gcore/resources/cloud/load_balancers/metrics.py +9 -5
- gcore/resources/cloud/load_balancers/pools/health_monitors.py +25 -17
- gcore/resources/cloud/load_balancers/pools/members.py +31 -23
- gcore/resources/cloud/load_balancers/pools/pools.py +155 -129
- gcore/resources/cloud/load_balancers/statuses.py +17 -9
- gcore/resources/cloud/networks/networks.py +79 -55
- gcore/resources/cloud/networks/routers.py +75 -47
- gcore/resources/cloud/networks/subnets.py +105 -81
- gcore/resources/cloud/placement_groups.py +33 -17
- gcore/resources/cloud/projects.py +53 -41
- gcore/resources/cloud/quotas/quotas.py +25 -13
- gcore/resources/cloud/quotas/requests.py +41 -25
- gcore/resources/cloud/regions.py +25 -23
- gcore/resources/cloud/registries/artifacts.py +17 -9
- gcore/resources/cloud/registries/registries.py +55 -29
- gcore/resources/cloud/registries/repositories.py +17 -9
- gcore/resources/cloud/registries/tags.py +9 -5
- gcore/resources/cloud/registries/users.py +65 -35
- gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +123 -107
- gcore/resources/cloud/reserved_fixed_ips/vip.py +45 -25
- gcore/resources/cloud/secrets.py +43 -27
- gcore/resources/cloud/security_groups/rules.py +55 -43
- gcore/resources/cloud/security_groups/security_groups.py +79 -47
- gcore/resources/cloud/ssh_keys.py +51 -31
- gcore/resources/cloud/tasks.py +57 -45
- gcore/resources/cloud/usage_reports.py +27 -23
- gcore/resources/cloud/users/role_assignments.py +49 -33
- gcore/resources/cloud/volumes.py +237 -201
- gcore/resources/dns/dns.py +17 -13
- gcore/resources/dns/locations.py +29 -17
- gcore/resources/dns/metrics.py +13 -9
- gcore/resources/dns/pickers/pickers.py +5 -5
- gcore/resources/dns/pickers/presets.py +9 -5
- gcore/resources/dns/zones/dnssec.py +19 -11
- gcore/resources/dns/zones/rrsets.py +149 -91
- gcore/resources/dns/zones/zones.py +247 -189
- gcore/resources/fastedge/apps/apps.py +105 -89
- gcore/resources/fastedge/apps/logs.py +25 -21
- gcore/resources/fastedge/binaries.py +33 -17
- gcore/resources/fastedge/fastedge.py +5 -5
- gcore/resources/fastedge/kv_stores.py +43 -31
- gcore/resources/fastedge/secrets.py +69 -45
- gcore/resources/fastedge/statistics.py +25 -17
- gcore/resources/fastedge/templates.py +59 -39
- gcore/resources/iam/api_tokens.py +43 -27
- gcore/resources/iam/iam.py +5 -5
- gcore/resources/iam/users.py +97 -65
- gcore/resources/security/bgp_announces.py +27 -19
- gcore/resources/security/events.py +23 -19
- gcore/resources/security/profile_templates.py +9 -5
- gcore/resources/security/profiles.py +69 -45
- gcore/resources/storage/buckets/buckets.py +37 -25
- gcore/resources/storage/buckets/cors.py +19 -11
- gcore/resources/storage/buckets/lifecycle.py +19 -11
- gcore/resources/storage/buckets/policy.py +25 -13
- gcore/resources/storage/credentials.py +19 -15
- gcore/resources/storage/locations.py +13 -9
- gcore/resources/storage/statistics.py +39 -31
- gcore/resources/storage/storage.py +105 -69
- gcore/resources/streaming/ai_tasks.py +307 -197
- gcore/resources/streaming/broadcasts.py +63 -35
- gcore/resources/streaming/directories.py +65 -39
- gcore/resources/streaming/players.py +47 -31
- gcore/resources/streaming/playlists.py +189 -123
- gcore/resources/streaming/quality_sets.py +69 -39
- gcore/resources/streaming/restreams.py +47 -27
- gcore/resources/streaming/statistics.py +613 -407
- gcore/resources/streaming/streams/overlays.py +107 -67
- gcore/resources/streaming/streams/streams.py +403 -263
- gcore/resources/streaming/videos/subtitles.py +131 -75
- gcore/resources/streaming/videos/videos.py +429 -279
- gcore/resources/waap/advanced_rules.py +9 -5
- gcore/resources/waap/custom_page_sets.py +99 -75
- gcore/resources/waap/domains/advanced_rules.py +157 -99
- gcore/resources/waap/domains/api_discovery.py +71 -47
- gcore/resources/waap/domains/api_path_groups.py +9 -5
- gcore/resources/waap/domains/api_paths.py +79 -83
- gcore/resources/waap/domains/custom_rules.py +89 -59
- gcore/resources/waap/domains/domains.py +59 -41
- gcore/resources/waap/domains/firewall_rules.py +83 -55
- gcore/resources/waap/domains/insight_silences.py +59 -39
- gcore/resources/waap/domains/insights.py +39 -27
- gcore/resources/waap/domains/settings.py +21 -13
- gcore/resources/waap/domains/statistics.py +99 -75
- gcore/resources/waap/insights.py +23 -21
- gcore/resources/waap/ip_info/ip_info.py +70 -38
- gcore/resources/waap/ip_info/metrics.py +11 -7
- gcore/resources/waap/organizations.py +17 -13
- gcore/resources/waap/statistics.py +9 -5
- gcore/resources/waap/tags.py +17 -17
- gcore/resources/waap/waap.py +5 -5
- gcore/types/cdn/__init__.py +80 -0
- gcore/types/cdn/audit_log_list_params.py +73 -0
- gcore/types/cdn/ca_certificate.py +53 -0
- gcore/types/cdn/ca_certificate_list.py +10 -0
- gcore/types/cdn/cdn_account.py +86 -0
- gcore/types/cdn/cdn_account_limits.py +27 -0
- gcore/types/cdn/cdn_audit_log_entry.py +66 -0
- gcore/types/cdn/cdn_available_features.py +46 -0
- gcore/types/cdn/cdn_list_purge_statuses_params.py +67 -0
- gcore/types/cdn/cdn_log_entry.py +70 -0
- gcore/types/cdn/cdn_metrics.py +22 -0
- gcore/types/cdn/cdn_metrics_groups.py +13 -0
- gcore/types/cdn/cdn_metrics_values.py +19 -0
- gcore/types/cdn/cdn_resource.py +1977 -0
- gcore/types/cdn/cdn_resource_list.py +10 -0
- gcore/types/cdn/cdn_update_account_params.py +15 -0
- gcore/types/cdn/certificate_create_params.py +51 -0
- gcore/types/cdn/certificate_get_status_params.py +14 -0
- gcore/types/cdn/certificate_list_params.py +29 -0
- gcore/types/cdn/certificate_replace_params.py +39 -0
- gcore/types/cdn/log_download_params.py +279 -0
- gcore/types/cdn/log_list_params.py +273 -0
- gcore/types/cdn/logs/__init__.py +7 -0
- gcore/types/cdn/logs/log_settings.py +172 -0
- gcore/types/cdn/logs/setting_create_params.py +200 -0
- gcore/types/cdn/logs/setting_update_params.py +200 -0
- gcore/types/cdn/logs_aggregated_stats.py +23 -0
- gcore/types/cdn/logs_uploader/__init__.py +23 -0
- gcore/types/cdn/logs_uploader/config_create_params.py +32 -0
- gcore/types/cdn/logs_uploader/config_list_params.py +16 -0
- gcore/types/cdn/logs_uploader/config_replace_params.py +32 -0
- gcore/types/cdn/logs_uploader/config_update_params.py +32 -0
- gcore/types/cdn/logs_uploader/logs_uploader_config.py +51 -0
- gcore/types/cdn/logs_uploader/logs_uploader_config_list.py +10 -0
- gcore/types/cdn/logs_uploader/logs_uploader_policy.py +73 -0
- gcore/types/cdn/logs_uploader/logs_uploader_policy_list.py +10 -0
- gcore/types/cdn/logs_uploader/logs_uploader_target.py +236 -0
- gcore/types/cdn/logs_uploader/logs_uploader_target_list.py +10 -0
- gcore/types/cdn/logs_uploader/policy_create_params.py +61 -0
- gcore/types/cdn/logs_uploader/policy_list_fields_response.py +8 -0
- gcore/types/cdn/logs_uploader/policy_list_params.py +16 -0
- gcore/types/cdn/logs_uploader/policy_replace_params.py +61 -0
- gcore/types/cdn/logs_uploader/policy_update_params.py +61 -0
- gcore/types/cdn/logs_uploader/target_create_params.py +249 -0
- gcore/types/cdn/logs_uploader/target_list_params.py +16 -0
- gcore/types/cdn/logs_uploader/target_replace_params.py +249 -0
- gcore/types/cdn/logs_uploader/target_update_params.py +249 -0
- gcore/types/cdn/logs_uploader_validation.py +23 -0
- gcore/types/cdn/metric_list_params.py +168 -0
- gcore/types/cdn/network_capacity.py +22 -0
- gcore/types/cdn/origin_group_create_params.py +184 -0
- gcore/types/cdn/origin_group_list_params.py +24 -0
- gcore/types/cdn/origin_group_replace_params.py +190 -0
- gcore/types/cdn/origin_group_update_params.py +190 -0
- gcore/types/cdn/origin_groups.py +212 -0
- gcore/types/cdn/origin_groups_list.py +10 -0
- gcore/types/cdn/public_ip_list.py +15 -0
- gcore/types/cdn/public_network_list.py +15 -0
- gcore/types/cdn/purge_status.py +55 -0
- gcore/types/cdn/resource_aggregated_stats.py +80 -0
- gcore/types/cdn/resource_create_params.py +1825 -0
- gcore/types/cdn/resource_list_params.py +107 -0
- gcore/types/cdn/resource_prefetch_params.py +17 -0
- gcore/types/cdn/resource_purge_params.py +71 -0
- gcore/types/cdn/resource_replace_params.py +1803 -0
- gcore/types/cdn/resource_update_params.py +1794 -0
- gcore/types/cdn/resource_usage_stats.py +111 -0
- gcore/types/cdn/resources/__init__.py +11 -0
- gcore/types/cdn/resources/cdn_resource_rule.py +1695 -0
- gcore/types/cdn/resources/origin_shielding.py +15 -0
- gcore/types/cdn/resources/rule_create_params.py +1652 -0
- gcore/types/cdn/resources/rule_list_response.py +10 -0
- gcore/types/cdn/resources/rule_replace_params.py +1654 -0
- gcore/types/cdn/resources/rule_update_params.py +1654 -0
- gcore/types/cdn/resources/shield_replace_params.py +16 -0
- gcore/types/cdn/rule_template.py +1666 -0
- gcore/types/cdn/rule_template_create_params.py +1636 -0
- gcore/types/cdn/rule_template_list.py +10 -0
- gcore/types/cdn/rule_template_replace_params.py +1636 -0
- gcore/types/cdn/rule_template_update_params.py +1636 -0
- gcore/types/cdn/shield_aggregated_stats.py +23 -0
- gcore/types/cdn/shield_list_response.py +25 -0
- gcore/types/cdn/ssl_detail.py +62 -0
- gcore/types/cdn/ssl_detail_list.py +10 -0
- gcore/types/cdn/ssl_request_status.py +135 -0
- gcore/types/cdn/statistic_get_logs_usage_aggregated_params.py +42 -0
- gcore/types/cdn/statistic_get_logs_usage_series_params.py +35 -0
- gcore/types/cdn/statistic_get_resource_usage_aggregated_params.py +151 -0
- gcore/types/cdn/statistic_get_resource_usage_series_params.py +131 -0
- gcore/types/cdn/statistic_get_shield_usage_aggregated_params.py +42 -0
- gcore/types/cdn/statistic_get_shield_usage_series_params.py +25 -0
- gcore/types/cdn/trusted_ca_certificate_create_params.py +23 -0
- gcore/types/cdn/trusted_ca_certificate_list_params.py +29 -0
- gcore/types/cdn/trusted_ca_certificate_replace_params.py +15 -0
- gcore/types/cdn/usage_series_stats.py +31 -0
- gcore/types/cloud/__init__.py +2 -0
- gcore/types/cloud/file_share.py +4 -0
- gcore/types/cloud/file_share_create_params.py +20 -0
- gcore/types/cloud/file_share_update_params.py +40 -3
- gcore/types/cloud/floating_ip.py +1 -1
- gcore/types/cloud/floating_ip_detailed.py +1 -1
- gcore/types/cloud/floating_ip_update_params.py +43 -0
- gcore/types/cloud/gpu_baremetal_cluster_action_params.py +46 -0
- gcore/types/cloud/inference/inference_deployment.py +3 -1
- gcore/types/cloud/instance_create_params.py +3 -1
- gcore/types/cloud/k8s/cluster_create_params.py +46 -4
- gcore/types/cloud/k8s/cluster_update_params.py +60 -6
- gcore/types/cloud/k8s/clusters/pool_update_params.py +1 -1
- gcore/types/cloud/k8s/k8s_cluster.py +40 -3
- gcore/types/cloud/load_balancer_update_params.py +3 -1
- gcore/types/cloud/network_update_params.py +3 -1
- gcore/types/cloud/networks/subnet_update_params.py +3 -1
- gcore/types/cloud/registries/user_create_multiple_params.py +5 -3
- gcore/types/cloud/registries/user_create_params.py +5 -3
- gcore/types/cloud/registry_create_params.py +5 -3
- gcore/types/cloud/security_group_update_params.py +3 -1
- gcore/types/cloud/ssh_key_created.py +6 -3
- gcore/types/cloud/volume_update_params.py +3 -1
- gcore/types/dns/zone_get_statistics_params.py +12 -9
- gcore/types/dns/zone_get_statistics_response.py +3 -1
- gcore/types/dns/zone_import_params.py +21 -15
- gcore/types/dns/zones/dns_output_rrset.py +7 -3
- gcore/types/iam/account_overview.py +7 -2
- gcore/types/iam/user.py +7 -2
- gcore/types/iam/user_detailed.py +7 -2
- gcore/types/iam/user_invite_params.py +4 -1
- gcore/types/iam/user_update.py +7 -2
- gcore/types/iam/user_update_params.py +7 -2
- gcore/types/streaming/ai_contentmoderation_hardnudity.py +6 -4
- gcore/types/streaming/ai_contentmoderation_nsfw.py +6 -4
- gcore/types/streaming/ai_contentmoderation_softnudity.py +6 -4
- gcore/types/streaming/ai_contentmoderation_sport.py +6 -4
- gcore/types/streaming/ai_task.py +20 -11
- gcore/types/streaming/ai_task_create_params.py +20 -11
- gcore/types/streaming/ai_task_get_response.py +5 -4
- gcore/types/streaming/ai_task_list_params.py +11 -5
- gcore/types/streaming/clip.py +33 -22
- gcore/types/streaming/create_video_param.py +75 -43
- gcore/types/streaming/playlist.py +7 -5
- gcore/types/streaming/playlist_create_params.py +7 -5
- gcore/types/streaming/playlist_update_params.py +7 -5
- gcore/types/streaming/playlist_video.py +75 -43
- gcore/types/streaming/statistic_get_unique_viewers_cdn_params.py +7 -4
- gcore/types/streaming/stream.py +207 -136
- gcore/types/streaming/stream_create_clip_params.py +33 -22
- gcore/types/streaming/stream_create_params.py +41 -24
- gcore/types/streaming/stream_update_params.py +41 -24
- gcore/types/streaming/video.py +138 -76
- gcore/types/streaming/video_list_params.py +4 -2
- gcore/types/streaming/video_update_params.py +75 -43
- gcore/types/waap/__init__.py +2 -1
- gcore/types/waap/domain_update_params.py +2 -2
- gcore/types/waap/domains/advanced_rule_create_params.py +26 -18
- gcore/types/waap/domains/advanced_rule_list_params.py +10 -7
- gcore/types/waap/domains/advanced_rule_update_params.py +22 -17
- gcore/types/waap/domains/api_path_create_params.py +0 -3
- gcore/types/waap/domains/api_path_update_params.py +1 -3
- gcore/types/waap/domains/custom_rule_create_params.py +36 -35
- gcore/types/waap/domains/custom_rule_update_params.py +31 -33
- gcore/types/waap/domains/firewall_rule_create_params.py +6 -6
- gcore/types/waap/domains/firewall_rule_update_params.py +5 -5
- gcore/types/waap/domains/waap_advanced_rule.py +17 -9
- gcore/types/waap/domains/waap_custom_rule.py +5 -2
- gcore/types/waap/domains/waap_firewall_rule.py +1 -1
- gcore/types/waap/domains/waap_insight.py +1 -1
- gcore/types/waap/insight_list_types_params.py +1 -1
- gcore/types/waap/ip_info_get_top_urls_response.py +3 -12
- gcore/types/waap/{ip_info_get_ip_info_response.py → waap_ip_info.py} +2 -2
- gcore/types/waap/waap_top_url.py +13 -0
- {gcore-0.12.0.dist-info → gcore-0.14.0.dist-info}/METADATA +1 -1
- {gcore-0.12.0.dist-info → gcore-0.14.0.dist-info}/RECORD +340 -218
- {gcore-0.12.0.dist-info → gcore-0.14.0.dist-info}/WHEEL +0 -0
- {gcore-0.12.0.dist-info → gcore-0.14.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -31,7 +31,7 @@ from .servers import (
|
|
|
31
31
|
ServersResourceWithStreamingResponse,
|
|
32
32
|
AsyncServersResourceWithStreamingResponse,
|
|
33
33
|
)
|
|
34
|
-
from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven, SequenceNotStr
|
|
34
|
+
from ...._types import NOT_GIVEN, Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
|
|
35
35
|
from ...._utils import maybe_transform, async_maybe_transform
|
|
36
36
|
from ...._compat import cached_property
|
|
37
37
|
from .interfaces import (
|
|
@@ -52,6 +52,7 @@ from ...._response import (
|
|
|
52
52
|
from ....pagination import SyncOffsetPage, AsyncOffsetPage
|
|
53
53
|
from ....types.cloud import (
|
|
54
54
|
gpu_baremetal_cluster_list_params,
|
|
55
|
+
gpu_baremetal_cluster_action_params,
|
|
55
56
|
gpu_baremetal_cluster_create_params,
|
|
56
57
|
gpu_baremetal_cluster_delete_params,
|
|
57
58
|
gpu_baremetal_cluster_resize_params,
|
|
@@ -59,6 +60,7 @@ from ....types.cloud import (
|
|
|
59
60
|
)
|
|
60
61
|
from ...._base_client import AsyncPaginator, make_request_options
|
|
61
62
|
from ....types.cloud.task_id_list import TaskIDList
|
|
63
|
+
from ....types.cloud.tag_update_map_param import TagUpdateMapParam
|
|
62
64
|
from ....types.cloud.gpu_baremetal_cluster import GPUBaremetalCluster
|
|
63
65
|
from ....types.cloud.gpu_baremetal_clusters.gpu_baremetal_cluster_server_v1_list import GPUBaremetalClusterServerV1List
|
|
64
66
|
|
|
@@ -111,13 +113,13 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
111
113
|
name: str,
|
|
112
114
|
servers_count: int,
|
|
113
115
|
servers_settings: gpu_baremetal_cluster_create_params.ServersSettings,
|
|
114
|
-
tags: Dict[str, str] |
|
|
116
|
+
tags: Dict[str, str] | Omit = omit,
|
|
115
117
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
116
118
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
117
119
|
extra_headers: Headers | None = None,
|
|
118
120
|
extra_query: Query | None = None,
|
|
119
121
|
extra_body: Body | None = None,
|
|
120
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
122
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
121
123
|
) -> TaskIDList:
|
|
122
124
|
"""
|
|
123
125
|
Create a new bare metal GPU cluster with the specified configuration.
|
|
@@ -156,7 +158,9 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
156
158
|
if region_id is None:
|
|
157
159
|
region_id = self._client._get_cloud_region_id_path_param()
|
|
158
160
|
return self._post(
|
|
159
|
-
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters"
|
|
161
|
+
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters"
|
|
162
|
+
if self._client._base_url_overridden
|
|
163
|
+
else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters",
|
|
160
164
|
body=maybe_transform(
|
|
161
165
|
{
|
|
162
166
|
"flavor": flavor,
|
|
@@ -179,15 +183,15 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
179
183
|
*,
|
|
180
184
|
project_id: int | None = None,
|
|
181
185
|
region_id: int | None = None,
|
|
182
|
-
limit: int |
|
|
183
|
-
managed_by: List[Literal["k8s", "user"]] |
|
|
184
|
-
offset: int |
|
|
186
|
+
limit: int | Omit = omit,
|
|
187
|
+
managed_by: List[Literal["k8s", "user"]] | Omit = omit,
|
|
188
|
+
offset: int | Omit = omit,
|
|
185
189
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
186
190
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
187
191
|
extra_headers: Headers | None = None,
|
|
188
192
|
extra_query: Query | None = None,
|
|
189
193
|
extra_body: Body | None = None,
|
|
190
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
194
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
191
195
|
) -> SyncOffsetPage[GPUBaremetalCluster]:
|
|
192
196
|
"""
|
|
193
197
|
List all bare metal GPU clusters in the specified project and region.
|
|
@@ -220,7 +224,9 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
220
224
|
if region_id is None:
|
|
221
225
|
region_id = self._client._get_cloud_region_id_path_param()
|
|
222
226
|
return self._get_api_list(
|
|
223
|
-
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters"
|
|
227
|
+
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters"
|
|
228
|
+
if self._client._base_url_overridden
|
|
229
|
+
else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters",
|
|
224
230
|
page=SyncOffsetPage[GPUBaremetalCluster],
|
|
225
231
|
options=make_request_options(
|
|
226
232
|
extra_headers=extra_headers,
|
|
@@ -245,16 +251,16 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
245
251
|
*,
|
|
246
252
|
project_id: int | None = None,
|
|
247
253
|
region_id: int | None = None,
|
|
248
|
-
all_floating_ips: bool |
|
|
249
|
-
all_reserved_fixed_ips: bool |
|
|
250
|
-
floating_ip_ids: SequenceNotStr[str] |
|
|
251
|
-
reserved_fixed_ip_ids: SequenceNotStr[str] |
|
|
254
|
+
all_floating_ips: bool | Omit = omit,
|
|
255
|
+
all_reserved_fixed_ips: bool | Omit = omit,
|
|
256
|
+
floating_ip_ids: SequenceNotStr[str] | Omit = omit,
|
|
257
|
+
reserved_fixed_ip_ids: SequenceNotStr[str] | Omit = omit,
|
|
252
258
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
253
259
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
254
260
|
extra_headers: Headers | None = None,
|
|
255
261
|
extra_query: Query | None = None,
|
|
256
262
|
extra_body: Body | None = None,
|
|
257
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
263
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
258
264
|
) -> TaskIDList:
|
|
259
265
|
"""
|
|
260
266
|
Delete a bare metal GPU cluster and all its associated resources.
|
|
@@ -291,7 +297,9 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
291
297
|
if not cluster_id:
|
|
292
298
|
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
293
299
|
return self._delete(
|
|
294
|
-
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}"
|
|
300
|
+
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}"
|
|
301
|
+
if self._client._base_url_overridden
|
|
302
|
+
else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}",
|
|
295
303
|
options=make_request_options(
|
|
296
304
|
extra_headers=extra_headers,
|
|
297
305
|
extra_query=extra_query,
|
|
@@ -310,6 +318,88 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
310
318
|
cast_to=TaskIDList,
|
|
311
319
|
)
|
|
312
320
|
|
|
321
|
+
def action(
|
|
322
|
+
self,
|
|
323
|
+
cluster_id: str,
|
|
324
|
+
*,
|
|
325
|
+
project_id: int | None = None,
|
|
326
|
+
region_id: int | None = None,
|
|
327
|
+
action: Literal["update_tags"],
|
|
328
|
+
tags: Optional[TagUpdateMapParam],
|
|
329
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
330
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
331
|
+
extra_headers: Headers | None = None,
|
|
332
|
+
extra_query: Query | None = None,
|
|
333
|
+
extra_body: Body | None = None,
|
|
334
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
335
|
+
) -> TaskIDList:
|
|
336
|
+
"""Perform a specific action on a baremetal GPU cluster.
|
|
337
|
+
|
|
338
|
+
Available actions: update
|
|
339
|
+
tags.
|
|
340
|
+
|
|
341
|
+
Args:
|
|
342
|
+
project_id: Project ID
|
|
343
|
+
|
|
344
|
+
region_id: Region ID
|
|
345
|
+
|
|
346
|
+
cluster_id: Cluster unique identifier
|
|
347
|
+
|
|
348
|
+
action: Action name
|
|
349
|
+
|
|
350
|
+
tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide
|
|
351
|
+
key-value pairs to add or update tags. Set tag values to `null` to remove tags.
|
|
352
|
+
Unspecified tags remain unchanged. Read-only tags are always preserved and
|
|
353
|
+
cannot be modified.
|
|
354
|
+
|
|
355
|
+
**Examples:**
|
|
356
|
+
|
|
357
|
+
- **Add/update tags:**
|
|
358
|
+
`{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
|
|
359
|
+
updates existing ones.
|
|
360
|
+
- **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
|
|
361
|
+
- **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
|
|
362
|
+
tags are preserved).
|
|
363
|
+
- **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
|
|
364
|
+
specified tags.
|
|
365
|
+
- **Mixed operations:**
|
|
366
|
+
`{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
|
|
367
|
+
adds/updates 'environment' and '`cost_center`' while removing
|
|
368
|
+
'`deprecated_tag`', preserving other existing tags.
|
|
369
|
+
- **Replace all:** first delete existing tags with null values, then add new
|
|
370
|
+
ones in the same request.
|
|
371
|
+
|
|
372
|
+
extra_headers: Send extra headers
|
|
373
|
+
|
|
374
|
+
extra_query: Add additional query parameters to the request
|
|
375
|
+
|
|
376
|
+
extra_body: Add additional JSON properties to the request
|
|
377
|
+
|
|
378
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
379
|
+
"""
|
|
380
|
+
if project_id is None:
|
|
381
|
+
project_id = self._client._get_cloud_project_id_path_param()
|
|
382
|
+
if region_id is None:
|
|
383
|
+
region_id = self._client._get_cloud_region_id_path_param()
|
|
384
|
+
if not cluster_id:
|
|
385
|
+
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
386
|
+
return self._post(
|
|
387
|
+
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/action"
|
|
388
|
+
if self._client._base_url_overridden
|
|
389
|
+
else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/action",
|
|
390
|
+
body=maybe_transform(
|
|
391
|
+
{
|
|
392
|
+
"action": action,
|
|
393
|
+
"tags": tags,
|
|
394
|
+
},
|
|
395
|
+
gpu_baremetal_cluster_action_params.GPUBaremetalClusterActionParams,
|
|
396
|
+
),
|
|
397
|
+
options=make_request_options(
|
|
398
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
399
|
+
),
|
|
400
|
+
cast_to=TaskIDList,
|
|
401
|
+
)
|
|
402
|
+
|
|
313
403
|
def get(
|
|
314
404
|
self,
|
|
315
405
|
cluster_id: str,
|
|
@@ -321,7 +411,7 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
321
411
|
extra_headers: Headers | None = None,
|
|
322
412
|
extra_query: Query | None = None,
|
|
323
413
|
extra_body: Body | None = None,
|
|
324
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
414
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
325
415
|
) -> GPUBaremetalCluster:
|
|
326
416
|
"""
|
|
327
417
|
Get detailed information about a specific bare metal GPU cluster.
|
|
@@ -348,7 +438,9 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
348
438
|
if not cluster_id:
|
|
349
439
|
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
350
440
|
return self._get(
|
|
351
|
-
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}"
|
|
441
|
+
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}"
|
|
442
|
+
if self._client._base_url_overridden
|
|
443
|
+
else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}",
|
|
352
444
|
options=make_request_options(
|
|
353
445
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
354
446
|
),
|
|
@@ -366,7 +458,7 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
366
458
|
extra_headers: Headers | None = None,
|
|
367
459
|
extra_query: Query | None = None,
|
|
368
460
|
extra_body: Body | None = None,
|
|
369
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
461
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
370
462
|
) -> GPUBaremetalClusterServerV1List:
|
|
371
463
|
"""
|
|
372
464
|
Stops and then starts all cluster servers, effectively performing a hard reboot.
|
|
@@ -387,7 +479,9 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
387
479
|
if not cluster_id:
|
|
388
480
|
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
389
481
|
return self._post(
|
|
390
|
-
f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle"
|
|
482
|
+
f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle"
|
|
483
|
+
if self._client._base_url_overridden
|
|
484
|
+
else f"https://api.gcore.com//cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle",
|
|
391
485
|
options=make_request_options(
|
|
392
486
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
393
487
|
),
|
|
@@ -405,7 +499,7 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
405
499
|
extra_headers: Headers | None = None,
|
|
406
500
|
extra_query: Query | None = None,
|
|
407
501
|
extra_body: Body | None = None,
|
|
408
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
502
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
409
503
|
) -> GPUBaremetalClusterServerV1List:
|
|
410
504
|
"""
|
|
411
505
|
Reboot all bare metal GPU cluster servers
|
|
@@ -426,7 +520,9 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
426
520
|
if not cluster_id:
|
|
427
521
|
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
428
522
|
return self._post(
|
|
429
|
-
f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot"
|
|
523
|
+
f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot"
|
|
524
|
+
if self._client._base_url_overridden
|
|
525
|
+
else f"https://api.gcore.com//cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot",
|
|
430
526
|
options=make_request_options(
|
|
431
527
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
432
528
|
),
|
|
@@ -440,14 +536,14 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
440
536
|
project_id: int | None = None,
|
|
441
537
|
region_id: int | None = None,
|
|
442
538
|
nodes: SequenceNotStr[str],
|
|
443
|
-
image_id: Optional[str] |
|
|
444
|
-
user_data: Optional[str] |
|
|
539
|
+
image_id: Optional[str] | Omit = omit,
|
|
540
|
+
user_data: Optional[str] | Omit = omit,
|
|
445
541
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
446
542
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
447
543
|
extra_headers: Headers | None = None,
|
|
448
544
|
extra_query: Query | None = None,
|
|
449
545
|
extra_body: Body | None = None,
|
|
450
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
546
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
451
547
|
) -> TaskIDList:
|
|
452
548
|
"""Rebuild one or more nodes in a GPU cluster.
|
|
453
549
|
|
|
@@ -478,7 +574,9 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
478
574
|
if not cluster_id:
|
|
479
575
|
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
480
576
|
return self._post(
|
|
481
|
-
f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild"
|
|
577
|
+
f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild"
|
|
578
|
+
if self._client._base_url_overridden
|
|
579
|
+
else f"https://api.gcore.com//cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild",
|
|
482
580
|
body=maybe_transform(
|
|
483
581
|
{
|
|
484
582
|
"nodes": nodes,
|
|
@@ -505,7 +603,7 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
505
603
|
extra_headers: Headers | None = None,
|
|
506
604
|
extra_query: Query | None = None,
|
|
507
605
|
extra_body: Body | None = None,
|
|
508
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
606
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
509
607
|
) -> TaskIDList:
|
|
510
608
|
"""Change the number of nodes in a GPU cluster.
|
|
511
609
|
|
|
@@ -530,7 +628,9 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
530
628
|
if not cluster_id:
|
|
531
629
|
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
532
630
|
return self._post(
|
|
533
|
-
f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize"
|
|
631
|
+
f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize"
|
|
632
|
+
if self._client._base_url_overridden
|
|
633
|
+
else f"https://api.gcore.com//cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize",
|
|
534
634
|
body=maybe_transform(
|
|
535
635
|
{"instances_count": instances_count},
|
|
536
636
|
gpu_baremetal_cluster_resize_params.GPUBaremetalClusterResizeParams,
|
|
@@ -551,8 +651,8 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
551
651
|
name: str,
|
|
552
652
|
servers_count: int,
|
|
553
653
|
servers_settings: gpu_baremetal_cluster_create_params.ServersSettings,
|
|
554
|
-
tags: Dict[str, str] |
|
|
555
|
-
polling_interval_seconds: int |
|
|
654
|
+
tags: Dict[str, str] | Omit = omit,
|
|
655
|
+
polling_interval_seconds: int | Omit = omit,
|
|
556
656
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
557
657
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
558
658
|
extra_headers: Headers | None = None,
|
|
@@ -606,9 +706,9 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
606
706
|
project_id: int | None = None,
|
|
607
707
|
region_id: int | None = None,
|
|
608
708
|
nodes: List[str],
|
|
609
|
-
image_id: Optional[str] |
|
|
610
|
-
user_data: Optional[str] |
|
|
611
|
-
polling_interval_seconds: int |
|
|
709
|
+
image_id: Optional[str] | Omit = omit,
|
|
710
|
+
user_data: Optional[str] | Omit = omit,
|
|
711
|
+
polling_interval_seconds: int | Omit = omit,
|
|
612
712
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
613
713
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
614
714
|
extra_headers: Headers | None = None,
|
|
@@ -657,7 +757,7 @@ class GPUBaremetalClustersResource(SyncAPIResource):
|
|
|
657
757
|
project_id: int | None = None,
|
|
658
758
|
region_id: int | None = None,
|
|
659
759
|
instances_count: int,
|
|
660
|
-
polling_interval_seconds: int |
|
|
760
|
+
polling_interval_seconds: int | Omit = omit,
|
|
661
761
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
662
762
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
663
763
|
extra_headers: Headers | None = None,
|
|
@@ -744,13 +844,13 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
744
844
|
name: str,
|
|
745
845
|
servers_count: int,
|
|
746
846
|
servers_settings: gpu_baremetal_cluster_create_params.ServersSettings,
|
|
747
|
-
tags: Dict[str, str] |
|
|
847
|
+
tags: Dict[str, str] | Omit = omit,
|
|
748
848
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
749
849
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
750
850
|
extra_headers: Headers | None = None,
|
|
751
851
|
extra_query: Query | None = None,
|
|
752
852
|
extra_body: Body | None = None,
|
|
753
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
853
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
754
854
|
) -> TaskIDList:
|
|
755
855
|
"""
|
|
756
856
|
Create a new bare metal GPU cluster with the specified configuration.
|
|
@@ -789,7 +889,9 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
789
889
|
if region_id is None:
|
|
790
890
|
region_id = self._client._get_cloud_region_id_path_param()
|
|
791
891
|
return await self._post(
|
|
792
|
-
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters"
|
|
892
|
+
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters"
|
|
893
|
+
if self._client._base_url_overridden
|
|
894
|
+
else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters",
|
|
793
895
|
body=await async_maybe_transform(
|
|
794
896
|
{
|
|
795
897
|
"flavor": flavor,
|
|
@@ -812,15 +914,15 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
812
914
|
*,
|
|
813
915
|
project_id: int | None = None,
|
|
814
916
|
region_id: int | None = None,
|
|
815
|
-
limit: int |
|
|
816
|
-
managed_by: List[Literal["k8s", "user"]] |
|
|
817
|
-
offset: int |
|
|
917
|
+
limit: int | Omit = omit,
|
|
918
|
+
managed_by: List[Literal["k8s", "user"]] | Omit = omit,
|
|
919
|
+
offset: int | Omit = omit,
|
|
818
920
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
819
921
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
820
922
|
extra_headers: Headers | None = None,
|
|
821
923
|
extra_query: Query | None = None,
|
|
822
924
|
extra_body: Body | None = None,
|
|
823
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
925
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
824
926
|
) -> AsyncPaginator[GPUBaremetalCluster, AsyncOffsetPage[GPUBaremetalCluster]]:
|
|
825
927
|
"""
|
|
826
928
|
List all bare metal GPU clusters in the specified project and region.
|
|
@@ -853,7 +955,9 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
853
955
|
if region_id is None:
|
|
854
956
|
region_id = self._client._get_cloud_region_id_path_param()
|
|
855
957
|
return self._get_api_list(
|
|
856
|
-
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters"
|
|
958
|
+
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters"
|
|
959
|
+
if self._client._base_url_overridden
|
|
960
|
+
else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters",
|
|
857
961
|
page=AsyncOffsetPage[GPUBaremetalCluster],
|
|
858
962
|
options=make_request_options(
|
|
859
963
|
extra_headers=extra_headers,
|
|
@@ -878,16 +982,16 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
878
982
|
*,
|
|
879
983
|
project_id: int | None = None,
|
|
880
984
|
region_id: int | None = None,
|
|
881
|
-
all_floating_ips: bool |
|
|
882
|
-
all_reserved_fixed_ips: bool |
|
|
883
|
-
floating_ip_ids: SequenceNotStr[str] |
|
|
884
|
-
reserved_fixed_ip_ids: SequenceNotStr[str] |
|
|
985
|
+
all_floating_ips: bool | Omit = omit,
|
|
986
|
+
all_reserved_fixed_ips: bool | Omit = omit,
|
|
987
|
+
floating_ip_ids: SequenceNotStr[str] | Omit = omit,
|
|
988
|
+
reserved_fixed_ip_ids: SequenceNotStr[str] | Omit = omit,
|
|
885
989
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
886
990
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
887
991
|
extra_headers: Headers | None = None,
|
|
888
992
|
extra_query: Query | None = None,
|
|
889
993
|
extra_body: Body | None = None,
|
|
890
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
994
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
891
995
|
) -> TaskIDList:
|
|
892
996
|
"""
|
|
893
997
|
Delete a bare metal GPU cluster and all its associated resources.
|
|
@@ -924,7 +1028,9 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
924
1028
|
if not cluster_id:
|
|
925
1029
|
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
926
1030
|
return await self._delete(
|
|
927
|
-
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}"
|
|
1031
|
+
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}"
|
|
1032
|
+
if self._client._base_url_overridden
|
|
1033
|
+
else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}",
|
|
928
1034
|
options=make_request_options(
|
|
929
1035
|
extra_headers=extra_headers,
|
|
930
1036
|
extra_query=extra_query,
|
|
@@ -943,6 +1049,88 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
943
1049
|
cast_to=TaskIDList,
|
|
944
1050
|
)
|
|
945
1051
|
|
|
1052
|
+
async def action(
|
|
1053
|
+
self,
|
|
1054
|
+
cluster_id: str,
|
|
1055
|
+
*,
|
|
1056
|
+
project_id: int | None = None,
|
|
1057
|
+
region_id: int | None = None,
|
|
1058
|
+
action: Literal["update_tags"],
|
|
1059
|
+
tags: Optional[TagUpdateMapParam],
|
|
1060
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1061
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1062
|
+
extra_headers: Headers | None = None,
|
|
1063
|
+
extra_query: Query | None = None,
|
|
1064
|
+
extra_body: Body | None = None,
|
|
1065
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1066
|
+
) -> TaskIDList:
|
|
1067
|
+
"""Perform a specific action on a baremetal GPU cluster.
|
|
1068
|
+
|
|
1069
|
+
Available actions: update
|
|
1070
|
+
tags.
|
|
1071
|
+
|
|
1072
|
+
Args:
|
|
1073
|
+
project_id: Project ID
|
|
1074
|
+
|
|
1075
|
+
region_id: Region ID
|
|
1076
|
+
|
|
1077
|
+
cluster_id: Cluster unique identifier
|
|
1078
|
+
|
|
1079
|
+
action: Action name
|
|
1080
|
+
|
|
1081
|
+
tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide
|
|
1082
|
+
key-value pairs to add or update tags. Set tag values to `null` to remove tags.
|
|
1083
|
+
Unspecified tags remain unchanged. Read-only tags are always preserved and
|
|
1084
|
+
cannot be modified.
|
|
1085
|
+
|
|
1086
|
+
**Examples:**
|
|
1087
|
+
|
|
1088
|
+
- **Add/update tags:**
|
|
1089
|
+
`{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
|
|
1090
|
+
updates existing ones.
|
|
1091
|
+
- **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
|
|
1092
|
+
- **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
|
|
1093
|
+
tags are preserved).
|
|
1094
|
+
- **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
|
|
1095
|
+
specified tags.
|
|
1096
|
+
- **Mixed operations:**
|
|
1097
|
+
`{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
|
|
1098
|
+
adds/updates 'environment' and '`cost_center`' while removing
|
|
1099
|
+
'`deprecated_tag`', preserving other existing tags.
|
|
1100
|
+
- **Replace all:** first delete existing tags with null values, then add new
|
|
1101
|
+
ones in the same request.
|
|
1102
|
+
|
|
1103
|
+
extra_headers: Send extra headers
|
|
1104
|
+
|
|
1105
|
+
extra_query: Add additional query parameters to the request
|
|
1106
|
+
|
|
1107
|
+
extra_body: Add additional JSON properties to the request
|
|
1108
|
+
|
|
1109
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
1110
|
+
"""
|
|
1111
|
+
if project_id is None:
|
|
1112
|
+
project_id = self._client._get_cloud_project_id_path_param()
|
|
1113
|
+
if region_id is None:
|
|
1114
|
+
region_id = self._client._get_cloud_region_id_path_param()
|
|
1115
|
+
if not cluster_id:
|
|
1116
|
+
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
1117
|
+
return await self._post(
|
|
1118
|
+
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/action"
|
|
1119
|
+
if self._client._base_url_overridden
|
|
1120
|
+
else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/action",
|
|
1121
|
+
body=await async_maybe_transform(
|
|
1122
|
+
{
|
|
1123
|
+
"action": action,
|
|
1124
|
+
"tags": tags,
|
|
1125
|
+
},
|
|
1126
|
+
gpu_baremetal_cluster_action_params.GPUBaremetalClusterActionParams,
|
|
1127
|
+
),
|
|
1128
|
+
options=make_request_options(
|
|
1129
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
1130
|
+
),
|
|
1131
|
+
cast_to=TaskIDList,
|
|
1132
|
+
)
|
|
1133
|
+
|
|
946
1134
|
async def get(
|
|
947
1135
|
self,
|
|
948
1136
|
cluster_id: str,
|
|
@@ -954,7 +1142,7 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
954
1142
|
extra_headers: Headers | None = None,
|
|
955
1143
|
extra_query: Query | None = None,
|
|
956
1144
|
extra_body: Body | None = None,
|
|
957
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1145
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
958
1146
|
) -> GPUBaremetalCluster:
|
|
959
1147
|
"""
|
|
960
1148
|
Get detailed information about a specific bare metal GPU cluster.
|
|
@@ -981,7 +1169,9 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
981
1169
|
if not cluster_id:
|
|
982
1170
|
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
983
1171
|
return await self._get(
|
|
984
|
-
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}"
|
|
1172
|
+
f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}"
|
|
1173
|
+
if self._client._base_url_overridden
|
|
1174
|
+
else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}",
|
|
985
1175
|
options=make_request_options(
|
|
986
1176
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
987
1177
|
),
|
|
@@ -999,7 +1189,7 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
999
1189
|
extra_headers: Headers | None = None,
|
|
1000
1190
|
extra_query: Query | None = None,
|
|
1001
1191
|
extra_body: Body | None = None,
|
|
1002
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1192
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1003
1193
|
) -> GPUBaremetalClusterServerV1List:
|
|
1004
1194
|
"""
|
|
1005
1195
|
Stops and then starts all cluster servers, effectively performing a hard reboot.
|
|
@@ -1020,7 +1210,9 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
1020
1210
|
if not cluster_id:
|
|
1021
1211
|
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
1022
1212
|
return await self._post(
|
|
1023
|
-
f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle"
|
|
1213
|
+
f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle"
|
|
1214
|
+
if self._client._base_url_overridden
|
|
1215
|
+
else f"https://api.gcore.com//cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle",
|
|
1024
1216
|
options=make_request_options(
|
|
1025
1217
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
1026
1218
|
),
|
|
@@ -1038,7 +1230,7 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
1038
1230
|
extra_headers: Headers | None = None,
|
|
1039
1231
|
extra_query: Query | None = None,
|
|
1040
1232
|
extra_body: Body | None = None,
|
|
1041
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1233
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1042
1234
|
) -> GPUBaremetalClusterServerV1List:
|
|
1043
1235
|
"""
|
|
1044
1236
|
Reboot all bare metal GPU cluster servers
|
|
@@ -1059,7 +1251,9 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
1059
1251
|
if not cluster_id:
|
|
1060
1252
|
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
1061
1253
|
return await self._post(
|
|
1062
|
-
f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot"
|
|
1254
|
+
f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot"
|
|
1255
|
+
if self._client._base_url_overridden
|
|
1256
|
+
else f"https://api.gcore.com//cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot",
|
|
1063
1257
|
options=make_request_options(
|
|
1064
1258
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
1065
1259
|
),
|
|
@@ -1073,14 +1267,14 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
1073
1267
|
project_id: int | None = None,
|
|
1074
1268
|
region_id: int | None = None,
|
|
1075
1269
|
nodes: SequenceNotStr[str],
|
|
1076
|
-
image_id: Optional[str] |
|
|
1077
|
-
user_data: Optional[str] |
|
|
1270
|
+
image_id: Optional[str] | Omit = omit,
|
|
1271
|
+
user_data: Optional[str] | Omit = omit,
|
|
1078
1272
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1079
1273
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1080
1274
|
extra_headers: Headers | None = None,
|
|
1081
1275
|
extra_query: Query | None = None,
|
|
1082
1276
|
extra_body: Body | None = None,
|
|
1083
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1277
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1084
1278
|
) -> TaskIDList:
|
|
1085
1279
|
"""Rebuild one or more nodes in a GPU cluster.
|
|
1086
1280
|
|
|
@@ -1111,7 +1305,9 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
1111
1305
|
if not cluster_id:
|
|
1112
1306
|
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
1113
1307
|
return await self._post(
|
|
1114
|
-
f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild"
|
|
1308
|
+
f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild"
|
|
1309
|
+
if self._client._base_url_overridden
|
|
1310
|
+
else f"https://api.gcore.com//cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild",
|
|
1115
1311
|
body=await async_maybe_transform(
|
|
1116
1312
|
{
|
|
1117
1313
|
"nodes": nodes,
|
|
@@ -1138,7 +1334,7 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
1138
1334
|
extra_headers: Headers | None = None,
|
|
1139
1335
|
extra_query: Query | None = None,
|
|
1140
1336
|
extra_body: Body | None = None,
|
|
1141
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1337
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1142
1338
|
) -> TaskIDList:
|
|
1143
1339
|
"""Change the number of nodes in a GPU cluster.
|
|
1144
1340
|
|
|
@@ -1163,7 +1359,9 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
1163
1359
|
if not cluster_id:
|
|
1164
1360
|
raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}")
|
|
1165
1361
|
return await self._post(
|
|
1166
|
-
f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize"
|
|
1362
|
+
f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize"
|
|
1363
|
+
if self._client._base_url_overridden
|
|
1364
|
+
else f"https://api.gcore.com//cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize",
|
|
1167
1365
|
body=await async_maybe_transform(
|
|
1168
1366
|
{"instances_count": instances_count},
|
|
1169
1367
|
gpu_baremetal_cluster_resize_params.GPUBaremetalClusterResizeParams,
|
|
@@ -1184,8 +1382,8 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
1184
1382
|
name: str,
|
|
1185
1383
|
servers_count: int,
|
|
1186
1384
|
servers_settings: gpu_baremetal_cluster_create_params.ServersSettings,
|
|
1187
|
-
tags: Dict[str, str] |
|
|
1188
|
-
polling_interval_seconds: int |
|
|
1385
|
+
tags: Dict[str, str] | Omit = omit,
|
|
1386
|
+
polling_interval_seconds: int | Omit = omit,
|
|
1189
1387
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1190
1388
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1191
1389
|
extra_headers: Headers | None = None,
|
|
@@ -1239,9 +1437,9 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
1239
1437
|
project_id: int | None = None,
|
|
1240
1438
|
region_id: int | None = None,
|
|
1241
1439
|
nodes: List[str],
|
|
1242
|
-
image_id: Optional[str] |
|
|
1243
|
-
user_data: Optional[str] |
|
|
1244
|
-
polling_interval_seconds: int |
|
|
1440
|
+
image_id: Optional[str] | Omit = omit,
|
|
1441
|
+
user_data: Optional[str] | Omit = omit,
|
|
1442
|
+
polling_interval_seconds: int | Omit = omit,
|
|
1245
1443
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1246
1444
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1247
1445
|
extra_headers: Headers | None = None,
|
|
@@ -1290,7 +1488,7 @@ class AsyncGPUBaremetalClustersResource(AsyncAPIResource):
|
|
|
1290
1488
|
project_id: int | None = None,
|
|
1291
1489
|
region_id: int | None = None,
|
|
1292
1490
|
instances_count: int,
|
|
1293
|
-
polling_interval_seconds: int |
|
|
1491
|
+
polling_interval_seconds: int | Omit = omit,
|
|
1294
1492
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1295
1493
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1296
1494
|
extra_headers: Headers | None = None,
|
|
@@ -1344,6 +1542,9 @@ class GPUBaremetalClustersResourceWithRawResponse:
|
|
|
1344
1542
|
self.delete = to_raw_response_wrapper(
|
|
1345
1543
|
gpu_baremetal_clusters.delete,
|
|
1346
1544
|
)
|
|
1545
|
+
self.action = to_raw_response_wrapper(
|
|
1546
|
+
gpu_baremetal_clusters.action,
|
|
1547
|
+
)
|
|
1347
1548
|
self.get = to_raw_response_wrapper(
|
|
1348
1549
|
gpu_baremetal_clusters.get,
|
|
1349
1550
|
)
|
|
@@ -1390,6 +1591,9 @@ class AsyncGPUBaremetalClustersResourceWithRawResponse:
|
|
|
1390
1591
|
self.delete = async_to_raw_response_wrapper(
|
|
1391
1592
|
gpu_baremetal_clusters.delete,
|
|
1392
1593
|
)
|
|
1594
|
+
self.action = async_to_raw_response_wrapper(
|
|
1595
|
+
gpu_baremetal_clusters.action,
|
|
1596
|
+
)
|
|
1393
1597
|
self.get = async_to_raw_response_wrapper(
|
|
1394
1598
|
gpu_baremetal_clusters.get,
|
|
1395
1599
|
)
|
|
@@ -1436,6 +1640,9 @@ class GPUBaremetalClustersResourceWithStreamingResponse:
|
|
|
1436
1640
|
self.delete = to_streamed_response_wrapper(
|
|
1437
1641
|
gpu_baremetal_clusters.delete,
|
|
1438
1642
|
)
|
|
1643
|
+
self.action = to_streamed_response_wrapper(
|
|
1644
|
+
gpu_baremetal_clusters.action,
|
|
1645
|
+
)
|
|
1439
1646
|
self.get = to_streamed_response_wrapper(
|
|
1440
1647
|
gpu_baremetal_clusters.get,
|
|
1441
1648
|
)
|
|
@@ -1482,6 +1689,9 @@ class AsyncGPUBaremetalClustersResourceWithStreamingResponse:
|
|
|
1482
1689
|
self.delete = async_to_streamed_response_wrapper(
|
|
1483
1690
|
gpu_baremetal_clusters.delete,
|
|
1484
1691
|
)
|
|
1692
|
+
self.action = async_to_streamed_response_wrapper(
|
|
1693
|
+
gpu_baremetal_clusters.action,
|
|
1694
|
+
)
|
|
1485
1695
|
self.get = async_to_streamed_response_wrapper(
|
|
1486
1696
|
gpu_baremetal_clusters.get,
|
|
1487
1697
|
)
|