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
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, Annotated, TypedDict
|
|
6
|
+
|
|
7
|
+
from ..._utils import PropertyInfo
|
|
8
|
+
|
|
9
|
+
__all__ = ["TrustedCaCertificateCreateParams"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class TrustedCaCertificateCreateParams(TypedDict, total=False):
|
|
13
|
+
name: Required[str]
|
|
14
|
+
"""CA certificate name.
|
|
15
|
+
|
|
16
|
+
It must be unique.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
ssl_certificate: Required[Annotated[str, PropertyInfo(alias="sslCertificate")]]
|
|
20
|
+
"""Public part of the CA certificate.
|
|
21
|
+
|
|
22
|
+
It must be in the PEM format.
|
|
23
|
+
"""
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["TrustedCaCertificateListParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TrustedCaCertificateListParams(TypedDict, total=False):
|
|
11
|
+
automated: bool
|
|
12
|
+
"""How the certificate was issued.
|
|
13
|
+
|
|
14
|
+
Possible values:
|
|
15
|
+
|
|
16
|
+
- **true** – Certificate was issued automatically.
|
|
17
|
+
- **false** – Certificate was added by a user.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
resource_id: int
|
|
21
|
+
"""CDN resource ID for which the certificates are requested."""
|
|
22
|
+
|
|
23
|
+
validity_not_after_lte: str
|
|
24
|
+
"""
|
|
25
|
+
Date and time when the certificate become untrusted (ISO 8601/RFC 3339 format,
|
|
26
|
+
UTC.)
|
|
27
|
+
|
|
28
|
+
Response will contain certificates valid until the specified time.
|
|
29
|
+
"""
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["TrustedCaCertificateReplaceParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TrustedCaCertificateReplaceParams(TypedDict, total=False):
|
|
11
|
+
name: Required[str]
|
|
12
|
+
"""CA certificate name.
|
|
13
|
+
|
|
14
|
+
It must be unique.
|
|
15
|
+
"""
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from typing_extensions import TypeAlias
|
|
5
|
+
|
|
6
|
+
from ..._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = ["UsageSeriesStats", "UsageSeriesStatItem"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class UsageSeriesStatItem(BaseModel):
|
|
12
|
+
active_from: Optional[str] = None
|
|
13
|
+
"""Date and time when paid feature was enabled (ISO 8601/RFC 3339 format, UTC.)"""
|
|
14
|
+
|
|
15
|
+
active_to: Optional[str] = None
|
|
16
|
+
"""Date and time when paid feature was disabled (ISO 8601/RFC 3339 format, UTC.)
|
|
17
|
+
|
|
18
|
+
It returns **null** if the paid feature is enabled.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
client_id: Optional[int] = None
|
|
22
|
+
"""Client ID."""
|
|
23
|
+
|
|
24
|
+
cname: Optional[str] = None
|
|
25
|
+
"""CDN resource CNAME."""
|
|
26
|
+
|
|
27
|
+
resource_id: Optional[int] = None
|
|
28
|
+
"""CDN resource ID."""
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
UsageSeriesStats: TypeAlias = List[UsageSeriesStatItem]
|
gcore/types/cloud/__init__.py
CHANGED
|
@@ -122,6 +122,7 @@ from .load_balancer_get_params import LoadBalancerGetParams as LoadBalancerGetPa
|
|
|
122
122
|
from .load_balancer_statistics import LoadBalancerStatistics as LoadBalancerStatistics
|
|
123
123
|
from .floating_ip_assign_params import FloatingIPAssignParams as FloatingIPAssignParams
|
|
124
124
|
from .floating_ip_create_params import FloatingIPCreateParams as FloatingIPCreateParams
|
|
125
|
+
from .floating_ip_update_params import FloatingIPUpdateParams as FloatingIPUpdateParams
|
|
125
126
|
from .inference_region_capacity import InferenceRegionCapacity as InferenceRegionCapacity
|
|
126
127
|
from .load_balancer_flavor_list import LoadBalancerFlavorList as LoadBalancerFlavorList
|
|
127
128
|
from .load_balancer_list_params import LoadBalancerListParams as LoadBalancerListParams
|
|
@@ -165,6 +166,7 @@ from .gpu_baremetal_cluster_list_params import GPUBaremetalClusterListParams as
|
|
|
165
166
|
from .laas_index_retention_policy_param import LaasIndexRetentionPolicyParam as LaasIndexRetentionPolicyParam
|
|
166
167
|
from .load_balancer_member_connectivity import LoadBalancerMemberConnectivity as LoadBalancerMemberConnectivity
|
|
167
168
|
from .volume_detach_from_instance_params import VolumeDetachFromInstanceParams as VolumeDetachFromInstanceParams
|
|
169
|
+
from .gpu_baremetal_cluster_action_params import GPUBaremetalClusterActionParams as GPUBaremetalClusterActionParams
|
|
168
170
|
from .gpu_baremetal_cluster_create_params import GPUBaremetalClusterCreateParams as GPUBaremetalClusterCreateParams
|
|
169
171
|
from .gpu_baremetal_cluster_delete_params import GPUBaremetalClusterDeleteParams as GPUBaremetalClusterDeleteParams
|
|
170
172
|
from .gpu_baremetal_cluster_resize_params import GPUBaremetalClusterResizeParams as GPUBaremetalClusterResizeParams
|
gcore/types/cloud/file_share.py
CHANGED
|
@@ -21,6 +21,10 @@ class ShareSettingsStandardShareSettingsOutputSerializer(BaseModel):
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
class ShareSettingsVastShareSettingsOutputSerializer(BaseModel):
|
|
24
|
+
allowed_characters: Optional[Literal["LCD", "NPL"]] = None
|
|
25
|
+
|
|
26
|
+
path_length: Optional[Literal["LCD", "NPL"]] = None
|
|
27
|
+
|
|
24
28
|
root_squash: bool
|
|
25
29
|
"""Enables or disables root squash for NFS clients.
|
|
26
30
|
|
|
@@ -110,6 +110,26 @@ class CreateVastFileShareSerializer(TypedDict, total=False):
|
|
|
110
110
|
|
|
111
111
|
|
|
112
112
|
class CreateVastFileShareSerializerShareSettings(TypedDict, total=False):
|
|
113
|
+
allowed_characters: Literal["LCD", "NPL"]
|
|
114
|
+
"""Determines which characters are allowed in file names. Choose between:
|
|
115
|
+
|
|
116
|
+
- Lowest Common Denominator (LCD), allows only characters allowed by all VAST
|
|
117
|
+
Cluster-supported protocols
|
|
118
|
+
- Native Protocol Limit (NPL), imposes no limitation beyond that of the client
|
|
119
|
+
protocol.
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
path_length: Literal["LCD", "NPL"]
|
|
123
|
+
"""Affects the maximum limit of file path component name length. Choose between:
|
|
124
|
+
|
|
125
|
+
- Lowest Common Denominator (LCD), imposes the lowest common denominator file
|
|
126
|
+
length limit of all VAST Cluster-supported protocols. With this (default)
|
|
127
|
+
option, the limitation on the length of a single component of the path is 255
|
|
128
|
+
characters
|
|
129
|
+
- Native Protocol Limit (NPL), imposes no limitation beyond that of the client
|
|
130
|
+
protocol.
|
|
131
|
+
"""
|
|
132
|
+
|
|
113
133
|
root_squash: bool
|
|
114
134
|
"""Enables or disables root squash for NFS clients.
|
|
115
135
|
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
from typing import Optional
|
|
6
|
-
from typing_extensions import TypedDict
|
|
6
|
+
from typing_extensions import Literal, TypedDict
|
|
7
7
|
|
|
8
8
|
from .tag_update_map_param import TagUpdateMapParam
|
|
9
9
|
|
|
10
|
-
__all__ = ["FileShareUpdateParams"]
|
|
10
|
+
__all__ = ["FileShareUpdateParams", "ShareSettings"]
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class FileShareUpdateParams(TypedDict, total=False):
|
|
@@ -20,12 +20,17 @@ class FileShareUpdateParams(TypedDict, total=False):
|
|
|
20
20
|
name: str
|
|
21
21
|
"""Name"""
|
|
22
22
|
|
|
23
|
+
share_settings: ShareSettings
|
|
24
|
+
"""Configuration settings for the share"""
|
|
25
|
+
|
|
23
26
|
tags: Optional[TagUpdateMapParam]
|
|
24
27
|
"""Update key-value tags using JSON Merge Patch semantics (RFC 7386).
|
|
25
28
|
|
|
26
29
|
Provide key-value pairs to add or update tags. Set tag values to `null` to
|
|
27
30
|
remove tags. Unspecified tags remain unchanged. Read-only tags are always
|
|
28
|
-
preserved and cannot be modified.
|
|
31
|
+
preserved and cannot be modified.
|
|
32
|
+
|
|
33
|
+
**Examples:**
|
|
29
34
|
|
|
30
35
|
- **Add/update tags:**
|
|
31
36
|
`{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
|
|
@@ -42,3 +47,35 @@ class FileShareUpdateParams(TypedDict, total=False):
|
|
|
42
47
|
- **Replace all:** first delete existing tags with null values, then add new
|
|
43
48
|
ones in the same request.
|
|
44
49
|
"""
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class ShareSettings(TypedDict, total=False):
|
|
53
|
+
allowed_characters: Literal["LCD", "NPL"]
|
|
54
|
+
"""Determines which characters are allowed in file names. Choose between:
|
|
55
|
+
|
|
56
|
+
- Lowest Common Denominator (LCD), allows only characters allowed by all VAST
|
|
57
|
+
Cluster-supported protocols
|
|
58
|
+
- Native Protocol Limit (NPL), imposes no limitation beyond that of the client
|
|
59
|
+
protocol.
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
path_length: Literal["LCD", "NPL"]
|
|
63
|
+
"""Affects the maximum limit of file path component name length. Choose between:
|
|
64
|
+
|
|
65
|
+
- Lowest Common Denominator (LCD), imposes the lowest common denominator file
|
|
66
|
+
length limit of all VAST Cluster-supported protocols. With this (default)
|
|
67
|
+
option, the limitation on the length of a single component of the path is 255
|
|
68
|
+
characters
|
|
69
|
+
- Native Protocol Limit (NPL), imposes no limitation beyond that of the client
|
|
70
|
+
protocol.
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
root_squash: bool
|
|
74
|
+
"""Enables or disables root squash for NFS clients.
|
|
75
|
+
|
|
76
|
+
- If `true` (default), root squash is enabled: the root user is mapped to nobody
|
|
77
|
+
for all file and folder management operations on the export.
|
|
78
|
+
- If `false`, root squash is disabled: the NFS client `root` user retains root
|
|
79
|
+
privileges. Use this option if you trust the root user not to perform
|
|
80
|
+
operations that will corrupt data.
|
|
81
|
+
"""
|
gcore/types/cloud/floating_ip.py
CHANGED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import TypedDict
|
|
7
|
+
|
|
8
|
+
from .tag_update_map_param import TagUpdateMapParam
|
|
9
|
+
|
|
10
|
+
__all__ = ["FloatingIPUpdateParams"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FloatingIPUpdateParams(TypedDict, total=False):
|
|
14
|
+
project_id: int
|
|
15
|
+
"""Project ID"""
|
|
16
|
+
|
|
17
|
+
region_id: int
|
|
18
|
+
"""Region ID"""
|
|
19
|
+
|
|
20
|
+
tags: Optional[TagUpdateMapParam]
|
|
21
|
+
"""Update key-value tags using JSON Merge Patch semantics (RFC 7386).
|
|
22
|
+
|
|
23
|
+
Provide key-value pairs to add or update tags. Set tag values to `null` to
|
|
24
|
+
remove tags. Unspecified tags remain unchanged. Read-only tags are always
|
|
25
|
+
preserved and cannot be modified.
|
|
26
|
+
|
|
27
|
+
**Examples:**
|
|
28
|
+
|
|
29
|
+
- **Add/update tags:**
|
|
30
|
+
`{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
|
|
31
|
+
updates existing ones.
|
|
32
|
+
- **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
|
|
33
|
+
- **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
|
|
34
|
+
tags are preserved).
|
|
35
|
+
- **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
|
|
36
|
+
specified tags.
|
|
37
|
+
- **Mixed operations:**
|
|
38
|
+
`{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
|
|
39
|
+
adds/updates 'environment' and '`cost_center`' while removing
|
|
40
|
+
'`deprecated_tag`', preserving other existing tags.
|
|
41
|
+
- **Replace all:** first delete existing tags with null values, then add new
|
|
42
|
+
ones in the same request.
|
|
43
|
+
"""
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import Literal, Required, TypedDict
|
|
7
|
+
|
|
8
|
+
from .tag_update_map_param import TagUpdateMapParam
|
|
9
|
+
|
|
10
|
+
__all__ = ["GPUBaremetalClusterActionParams"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class GPUBaremetalClusterActionParams(TypedDict, total=False):
|
|
14
|
+
project_id: int
|
|
15
|
+
"""Project ID"""
|
|
16
|
+
|
|
17
|
+
region_id: int
|
|
18
|
+
"""Region ID"""
|
|
19
|
+
|
|
20
|
+
action: Required[Literal["update_tags"]]
|
|
21
|
+
"""Action name"""
|
|
22
|
+
|
|
23
|
+
tags: Required[Optional[TagUpdateMapParam]]
|
|
24
|
+
"""Update key-value tags using JSON Merge Patch semantics (RFC 7386).
|
|
25
|
+
|
|
26
|
+
Provide key-value pairs to add or update tags. Set tag values to `null` to
|
|
27
|
+
remove tags. Unspecified tags remain unchanged. Read-only tags are always
|
|
28
|
+
preserved and cannot be modified.
|
|
29
|
+
|
|
30
|
+
**Examples:**
|
|
31
|
+
|
|
32
|
+
- **Add/update tags:**
|
|
33
|
+
`{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
|
|
34
|
+
updates existing ones.
|
|
35
|
+
- **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
|
|
36
|
+
- **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
|
|
37
|
+
tags are preserved).
|
|
38
|
+
- **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
|
|
39
|
+
specified tags.
|
|
40
|
+
- **Mixed operations:**
|
|
41
|
+
`{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
|
|
42
|
+
adds/updates 'environment' and '`cost_center`' while removing
|
|
43
|
+
'`deprecated_tag`', preserving other existing tags.
|
|
44
|
+
- **Replace all:** first delete existing tags with null values, then add new
|
|
45
|
+
ones in the same request.
|
|
46
|
+
"""
|
|
@@ -239,7 +239,9 @@ class InferenceDeployment(BaseModel):
|
|
|
239
239
|
"""Project ID. If not provided, your default project ID will be used."""
|
|
240
240
|
|
|
241
241
|
status: Literal["ACTIVE", "DELETING", "DEPLOYING", "DISABLED", "PARTIALLYDEPLOYED", "PENDING"]
|
|
242
|
-
"""Inference instance status.
|
|
242
|
+
"""Inference instance status.
|
|
243
|
+
|
|
244
|
+
Value can be one of the following:
|
|
243
245
|
|
|
244
246
|
- `DEPLOYING` - The instance is being deployed. Containers are not yet created.
|
|
245
247
|
- `PARTIALLYDEPLOYED` - All containers have been created, but some may not be
|
|
@@ -97,7 +97,9 @@ class InstanceCreateParams(TypedDict, total=False):
|
|
|
97
97
|
"""
|
|
98
98
|
|
|
99
99
|
servergroup_id: str
|
|
100
|
-
"""Placement group ID for instance placement policy.
|
|
100
|
+
"""Placement group ID for instance placement policy.
|
|
101
|
+
|
|
102
|
+
Supported group types:
|
|
101
103
|
|
|
102
104
|
- `anti-affinity`: Ensures instances are placed on different hosts for high
|
|
103
105
|
availability.
|
|
@@ -5,11 +5,14 @@ from __future__ import annotations
|
|
|
5
5
|
from typing import Dict, List, Iterable, Optional
|
|
6
6
|
from typing_extensions import Literal, Required, TypedDict
|
|
7
7
|
|
|
8
|
+
from ...._types import SequenceNotStr
|
|
8
9
|
from ..laas_index_retention_policy_param import LaasIndexRetentionPolicyParam
|
|
9
10
|
|
|
10
11
|
__all__ = [
|
|
11
12
|
"ClusterCreateParams",
|
|
12
13
|
"Pool",
|
|
14
|
+
"AddOns",
|
|
15
|
+
"AddOnsSlurm",
|
|
13
16
|
"Authentication",
|
|
14
17
|
"AuthenticationOidc",
|
|
15
18
|
"Cni",
|
|
@@ -39,14 +42,19 @@ class ClusterCreateParams(TypedDict, total=False):
|
|
|
39
42
|
version: Required[str]
|
|
40
43
|
"""The version of the k8s cluster"""
|
|
41
44
|
|
|
45
|
+
add_ons: AddOns
|
|
46
|
+
"""Cluster add-ons configuration"""
|
|
47
|
+
|
|
42
48
|
authentication: Optional[Authentication]
|
|
43
49
|
"""Authentication settings"""
|
|
44
50
|
|
|
45
51
|
autoscaler_config: Optional[Dict[str, str]]
|
|
46
|
-
"""
|
|
47
|
-
|
|
48
|
-
cluster-autoscaler parameters provided by
|
|
49
|
-
|
|
52
|
+
"""Cluster autoscaler configuration.
|
|
53
|
+
|
|
54
|
+
It allows you to override the default cluster-autoscaler parameters provided by
|
|
55
|
+
the platform with your preferred values.
|
|
56
|
+
|
|
57
|
+
Supported parameters (in alphabetical order):
|
|
50
58
|
|
|
51
59
|
- balance-similar-node-groups (boolean: true/false) - Detect similar node groups
|
|
52
60
|
and balance the number of nodes between them.
|
|
@@ -175,6 +183,40 @@ class Pool(TypedDict, total=False):
|
|
|
175
183
|
"""Taints applied to the cluster pool"""
|
|
176
184
|
|
|
177
185
|
|
|
186
|
+
class AddOnsSlurm(TypedDict, total=False):
|
|
187
|
+
enabled: Required[Literal[True]]
|
|
188
|
+
"""The Slurm add-on will be enabled in the cluster.
|
|
189
|
+
|
|
190
|
+
This add-on is only supported in clusters running Kubernetes v1.31 and v1.32
|
|
191
|
+
with at least 1 GPU cluster pool and VAST NFS support enabled.
|
|
192
|
+
"""
|
|
193
|
+
|
|
194
|
+
file_share_id: Required[str]
|
|
195
|
+
"""ID of a VAST file share to be used as Slurm storage.
|
|
196
|
+
|
|
197
|
+
The Slurm add-on will create separate Persistent Volume Claims for different
|
|
198
|
+
purposes (controller spool, worker spool, jail) on that file share.
|
|
199
|
+
|
|
200
|
+
The file share must have `root_squash` disabled, while `path_length` and
|
|
201
|
+
`allowed_characters` settings must be set to `NPL`.
|
|
202
|
+
"""
|
|
203
|
+
|
|
204
|
+
ssh_key_ids: Required[SequenceNotStr[str]]
|
|
205
|
+
"""IDs of SSH keys to authorize for SSH connection to Slurm login nodes."""
|
|
206
|
+
|
|
207
|
+
worker_count: Required[int]
|
|
208
|
+
"""Size of the worker pool, i.e. the number of Slurm worker nodes.
|
|
209
|
+
|
|
210
|
+
Each Slurm worker node will be backed by a Pod scheduled on one of cluster's GPU
|
|
211
|
+
nodes.
|
|
212
|
+
"""
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
class AddOns(TypedDict, total=False):
|
|
216
|
+
slurm: AddOnsSlurm
|
|
217
|
+
"""Slurm add-on configuration"""
|
|
218
|
+
|
|
219
|
+
|
|
178
220
|
class AuthenticationOidc(TypedDict, total=False):
|
|
179
221
|
client_id: Optional[str]
|
|
180
222
|
"""Client ID"""
|
|
@@ -2,13 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import Dict, List, Iterable, Optional
|
|
6
|
-
from typing_extensions import Literal, Required, TypedDict
|
|
5
|
+
from typing import Dict, List, Union, Iterable, Optional
|
|
6
|
+
from typing_extensions import Literal, Required, TypeAlias, TypedDict
|
|
7
7
|
|
|
8
|
+
from ...._types import SequenceNotStr
|
|
8
9
|
from ..laas_index_retention_policy_param import LaasIndexRetentionPolicyParam
|
|
9
10
|
|
|
10
11
|
__all__ = [
|
|
11
12
|
"ClusterUpdateParams",
|
|
13
|
+
"AddOns",
|
|
14
|
+
"AddOnsSlurm",
|
|
15
|
+
"AddOnsSlurmK8sClusterSlurmAddonEnableV2Serializer",
|
|
16
|
+
"AddOnsSlurmK8sClusterSlurmAddonDisableV2Serializer",
|
|
12
17
|
"Authentication",
|
|
13
18
|
"AuthenticationOidc",
|
|
14
19
|
"Cni",
|
|
@@ -24,14 +29,19 @@ class ClusterUpdateParams(TypedDict, total=False):
|
|
|
24
29
|
|
|
25
30
|
region_id: int
|
|
26
31
|
|
|
32
|
+
add_ons: AddOns
|
|
33
|
+
"""Cluster add-ons configuration"""
|
|
34
|
+
|
|
27
35
|
authentication: Optional[Authentication]
|
|
28
36
|
"""Authentication settings"""
|
|
29
37
|
|
|
30
38
|
autoscaler_config: Optional[Dict[str, str]]
|
|
31
|
-
"""
|
|
32
|
-
|
|
33
|
-
cluster-autoscaler parameters provided by
|
|
34
|
-
|
|
39
|
+
"""Cluster autoscaler configuration.
|
|
40
|
+
|
|
41
|
+
It allows you to override the default cluster-autoscaler parameters provided by
|
|
42
|
+
the platform with your preferred values.
|
|
43
|
+
|
|
44
|
+
Supported parameters (in alphabetical order):
|
|
35
45
|
|
|
36
46
|
- balance-similar-node-groups (boolean: true/false) - Detect similar node groups
|
|
37
47
|
and balance the number of nodes between them.
|
|
@@ -95,6 +105,50 @@ class ClusterUpdateParams(TypedDict, total=False):
|
|
|
95
105
|
"""Logging configuration"""
|
|
96
106
|
|
|
97
107
|
|
|
108
|
+
class AddOnsSlurmK8sClusterSlurmAddonEnableV2Serializer(TypedDict, total=False):
|
|
109
|
+
enabled: Required[Literal[True]]
|
|
110
|
+
"""The Slurm add-on will be enabled in the cluster.
|
|
111
|
+
|
|
112
|
+
This add-on is only supported in clusters running Kubernetes v1.31 and v1.32
|
|
113
|
+
with at least 1 GPU cluster pool and VAST NFS support enabled.
|
|
114
|
+
"""
|
|
115
|
+
|
|
116
|
+
file_share_id: Required[str]
|
|
117
|
+
"""ID of a VAST file share to be used as Slurm storage.
|
|
118
|
+
|
|
119
|
+
The Slurm add-on will create separate Persistent Volume Claims for different
|
|
120
|
+
purposes (controller spool, worker spool, jail) on that file share.
|
|
121
|
+
|
|
122
|
+
The file share must have `root_squash` disabled, while `path_length` and
|
|
123
|
+
`allowed_characters` settings must be set to `NPL`.
|
|
124
|
+
"""
|
|
125
|
+
|
|
126
|
+
ssh_key_ids: Required[SequenceNotStr[str]]
|
|
127
|
+
"""IDs of SSH keys to authorize for SSH connection to Slurm login nodes."""
|
|
128
|
+
|
|
129
|
+
worker_count: Required[int]
|
|
130
|
+
"""Size of the worker pool, i.e. the number of Slurm worker nodes.
|
|
131
|
+
|
|
132
|
+
Each Slurm worker node will be backed by a Pod scheduled on one of cluster's GPU
|
|
133
|
+
nodes.
|
|
134
|
+
"""
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
class AddOnsSlurmK8sClusterSlurmAddonDisableV2Serializer(TypedDict, total=False):
|
|
138
|
+
enabled: Required[Literal[False]]
|
|
139
|
+
"""The Slurm add-on will be disabled in the cluster."""
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
AddOnsSlurm: TypeAlias = Union[
|
|
143
|
+
AddOnsSlurmK8sClusterSlurmAddonEnableV2Serializer, AddOnsSlurmK8sClusterSlurmAddonDisableV2Serializer
|
|
144
|
+
]
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
class AddOns(TypedDict, total=False):
|
|
148
|
+
slurm: AddOnsSlurm
|
|
149
|
+
"""Slurm add-on configuration"""
|
|
150
|
+
|
|
151
|
+
|
|
98
152
|
class AuthenticationOidc(TypedDict, total=False):
|
|
99
153
|
client_id: Optional[str]
|
|
100
154
|
"""Client ID"""
|
|
@@ -28,7 +28,7 @@ class PoolUpdateParams(TypedDict, total=False):
|
|
|
28
28
|
"""Minimum node count"""
|
|
29
29
|
|
|
30
30
|
node_count: Optional[int]
|
|
31
|
-
"""
|
|
31
|
+
"""This field is deprecated. Please use the cluster pool resize handler instead."""
|
|
32
32
|
|
|
33
33
|
taints: Optional[Dict[str, str]]
|
|
34
34
|
"""Taints applied to the cluster pool"""
|
|
@@ -10,6 +10,8 @@ from .clusters.k8s_cluster_pool import K8sClusterPool
|
|
|
10
10
|
|
|
11
11
|
__all__ = [
|
|
12
12
|
"K8sCluster",
|
|
13
|
+
"AddOns",
|
|
14
|
+
"AddOnsSlurm",
|
|
13
15
|
"Csi",
|
|
14
16
|
"CsiNfs",
|
|
15
17
|
"Authentication",
|
|
@@ -21,6 +23,37 @@ __all__ = [
|
|
|
21
23
|
]
|
|
22
24
|
|
|
23
25
|
|
|
26
|
+
class AddOnsSlurm(BaseModel):
|
|
27
|
+
enabled: bool
|
|
28
|
+
"""Indicates whether Slurm add-on is deployed in the cluster.
|
|
29
|
+
|
|
30
|
+
This add-on is only supported in clusters running Kubernetes v1.31 and v1.32
|
|
31
|
+
with at least 1 GPU cluster pool.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
file_share_id: Optional[str] = None
|
|
35
|
+
"""ID of a VAST file share used as Slurm storage.
|
|
36
|
+
|
|
37
|
+
The Slurm add-on creates separate Persistent Volume Claims for different
|
|
38
|
+
purposes (controller spool, worker spool, jail) on that file share.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
ssh_key_ids: Optional[List[str]] = None
|
|
42
|
+
"""IDs of SSH keys authorized for SSH connection to Slurm login nodes."""
|
|
43
|
+
|
|
44
|
+
worker_count: Optional[int] = None
|
|
45
|
+
"""Size of the worker pool, i.e. number of worker nodes.
|
|
46
|
+
|
|
47
|
+
Each Slurm worker node is backed by a Pod scheduled on one of cluster's GPU
|
|
48
|
+
nodes.
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class AddOns(BaseModel):
|
|
53
|
+
slurm: AddOnsSlurm
|
|
54
|
+
"""Slurm add-on configuration"""
|
|
55
|
+
|
|
56
|
+
|
|
24
57
|
class CsiNfs(BaseModel):
|
|
25
58
|
vast_enabled: bool
|
|
26
59
|
"""Indicates the status of VAST NFS integration"""
|
|
@@ -135,6 +168,9 @@ class K8sCluster(BaseModel):
|
|
|
135
168
|
id: str
|
|
136
169
|
"""Cluster pool uuid"""
|
|
137
170
|
|
|
171
|
+
add_ons: AddOns
|
|
172
|
+
"""Cluster add-ons configuration"""
|
|
173
|
+
|
|
138
174
|
created_at: str
|
|
139
175
|
"""Function creation date"""
|
|
140
176
|
|
|
@@ -166,9 +202,10 @@ class K8sCluster(BaseModel):
|
|
|
166
202
|
"""Cluster authentication settings"""
|
|
167
203
|
|
|
168
204
|
autoscaler_config: Optional[Dict[str, str]] = None
|
|
169
|
-
"""
|
|
170
|
-
|
|
171
|
-
cluster-autoscaler parameters provided by
|
|
205
|
+
"""Cluster autoscaler configuration.
|
|
206
|
+
|
|
207
|
+
It contains overrides to the default cluster-autoscaler parameters provided by
|
|
208
|
+
the platform.
|
|
172
209
|
"""
|
|
173
210
|
|
|
174
211
|
cni: Optional[Cni] = None
|
|
@@ -34,7 +34,9 @@ class LoadBalancerUpdateParams(TypedDict, total=False):
|
|
|
34
34
|
|
|
35
35
|
Provide key-value pairs to add or update tags. Set tag values to `null` to
|
|
36
36
|
remove tags. Unspecified tags remain unchanged. Read-only tags are always
|
|
37
|
-
preserved and cannot be modified.
|
|
37
|
+
preserved and cannot be modified.
|
|
38
|
+
|
|
39
|
+
**Examples:**
|
|
38
40
|
|
|
39
41
|
- **Add/update tags:**
|
|
40
42
|
`{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
|
|
@@ -25,7 +25,9 @@ class NetworkUpdateParams(TypedDict, total=False):
|
|
|
25
25
|
|
|
26
26
|
Provide key-value pairs to add or update tags. Set tag values to `null` to
|
|
27
27
|
remove tags. Unspecified tags remain unchanged. Read-only tags are always
|
|
28
|
-
preserved and cannot be modified.
|
|
28
|
+
preserved and cannot be modified.
|
|
29
|
+
|
|
30
|
+
**Examples:**
|
|
29
31
|
|
|
30
32
|
- **Add/update tags:**
|
|
31
33
|
`{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
|
|
@@ -43,7 +43,9 @@ class SubnetUpdateParams(TypedDict, total=False):
|
|
|
43
43
|
|
|
44
44
|
Provide key-value pairs to add or update tags. Set tag values to `null` to
|
|
45
45
|
remove tags. Unspecified tags remain unchanged. Read-only tags are always
|
|
46
|
-
preserved and cannot be modified.
|
|
46
|
+
preserved and cannot be modified.
|
|
47
|
+
|
|
48
|
+
**Examples:**
|
|
47
49
|
|
|
48
50
|
- **Add/update tags:**
|
|
49
51
|
`{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
|
|
@@ -22,9 +22,11 @@ class User(TypedDict, total=False):
|
|
|
22
22
|
"""User account operating time, days"""
|
|
23
23
|
|
|
24
24
|
name: Required[str]
|
|
25
|
-
"""
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
"""A name for the registry user.
|
|
26
|
+
|
|
27
|
+
Should be in lowercase, consisting only of numbers and letters,
|
|
28
|
+
|
|
29
|
+
with maximum length of 16 characters
|
|
28
30
|
"""
|
|
29
31
|
|
|
30
32
|
read_only: bool
|