lightning-sdk 2026.1.27__py3-none-any.whl → 2026.1.30__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.
- lightning_sdk/__version__.py +1 -1
- lightning_sdk/api/studio_api.py +32 -26
- lightning_sdk/api/teamspace_api.py +36 -26
- lightning_sdk/api/utils.py +61 -1
- lightning_sdk/cli/cp/teamspace_uploads.py +4 -2
- lightning_sdk/cli/utils/filesystem.py +6 -1
- lightning_sdk/lightning_cloud/openapi/__init__.py +3 -0
- lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +121 -0
- lightning_sdk/lightning_cloud/openapi/api/container_registry_service_api.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +3 -0
- lightning_sdk/lightning_cloud/openapi/models/cluster_service_get_cluster_capacity_reservation_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_cluster_capacity_reservation_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_update_container_registry_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +1 -53
- {lightning_sdk-2026.1.27.dist-info → lightning_sdk-2026.1.30.dist-info}/METADATA +1 -1
- {lightning_sdk-2026.1.27.dist-info → lightning_sdk-2026.1.30.dist-info}/RECORD +21 -18
- {lightning_sdk-2026.1.27.dist-info → lightning_sdk-2026.1.30.dist-info}/LICENSE +0 -0
- {lightning_sdk-2026.1.27.dist-info → lightning_sdk-2026.1.30.dist-info}/WHEEL +0 -0
- {lightning_sdk-2026.1.27.dist-info → lightning_sdk-2026.1.30.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-2026.1.27.dist-info → lightning_sdk-2026.1.30.dist-info}/top_level.txt +0 -0
lightning_sdk/__version__.py
CHANGED
lightning_sdk/api/studio_api.py
CHANGED
|
@@ -13,12 +13,15 @@ import requests
|
|
|
13
13
|
from tqdm import tqdm
|
|
14
14
|
|
|
15
15
|
from lightning_sdk.api.utils import (
|
|
16
|
+
_MAX_SIZE_MULTI_PART_CHUNK,
|
|
16
17
|
_authenticate_and_get_token,
|
|
17
18
|
_create_app,
|
|
18
19
|
_DummyBody,
|
|
19
20
|
_DummyResponse,
|
|
21
|
+
_FileUploader,
|
|
20
22
|
_machine_to_compute_name,
|
|
21
23
|
_sanitize_studio_remote_path,
|
|
24
|
+
_SinglePartFileUploader,
|
|
22
25
|
)
|
|
23
26
|
from lightning_sdk.api.utils import (
|
|
24
27
|
_get_cloud_url as _cloud_url,
|
|
@@ -722,33 +725,36 @@ class StudioApi:
|
|
|
722
725
|
remote_path: str,
|
|
723
726
|
progress_bar: bool,
|
|
724
727
|
) -> None:
|
|
725
|
-
"""Uploads file to given remote path
|
|
726
|
-
token = _authenticate_and_get_token(self._client)
|
|
727
|
-
|
|
728
|
-
query_params = {"token": token}
|
|
729
|
-
client_host = self._client.api_client.configuration.host
|
|
730
|
-
url = f"{client_host}/v1/projects/{teamspace_id}/artifacts/cloudspaces/{studio_id}/blobs/{remote_path}"
|
|
731
|
-
|
|
732
|
-
filesize = os.path.getsize(file_path)
|
|
733
|
-
with open(file_path, "rb") as f:
|
|
734
|
-
if progress_bar:
|
|
735
|
-
filesize = os.path.getsize(file_path)
|
|
736
|
-
with tqdm.wrapattr(
|
|
737
|
-
f,
|
|
738
|
-
"read",
|
|
739
|
-
desc=f"Uploading {os.path.split(file_path)[1]}",
|
|
740
|
-
total=filesize,
|
|
741
|
-
unit="B",
|
|
742
|
-
unit_scale=True,
|
|
743
|
-
unit_divisor=1000,
|
|
744
|
-
) as wrapped_file:
|
|
745
|
-
r = requests.put(url, data=wrapped_file, params=query_params, timeout=30)
|
|
746
|
-
else:
|
|
747
|
-
r = requests.put(url, data=f, params=query_params, timeout=30)
|
|
728
|
+
"""Uploads file to given remote path in the studio.
|
|
748
729
|
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
730
|
+
Uses single-part upload for files <= 5MB, multipart upload for larger files.
|
|
731
|
+
"""
|
|
732
|
+
file_size = os.path.getsize(file_path)
|
|
733
|
+
multipart_threshold = int(os.environ.get("LIGHTNING_MULTIPART_THRESHOLD", _MAX_SIZE_MULTI_PART_CHUNK))
|
|
734
|
+
|
|
735
|
+
if file_size <= multipart_threshold:
|
|
736
|
+
token = _authenticate_and_get_token(self._client)
|
|
737
|
+
|
|
738
|
+
query_params = {"token": token}
|
|
739
|
+
client_host = self._client.api_client.configuration.host
|
|
740
|
+
url = f"{client_host}/v1/projects/{teamspace_id}/artifacts/cloudspaces/{studio_id}/blobs/{remote_path}"
|
|
741
|
+
|
|
742
|
+
_SinglePartFileUploader(
|
|
743
|
+
client=self._client,
|
|
744
|
+
file_path=file_path,
|
|
745
|
+
url=url,
|
|
746
|
+
query_params=query_params,
|
|
747
|
+
progress_bar=progress_bar,
|
|
748
|
+
)()
|
|
749
|
+
else:
|
|
750
|
+
_FileUploader(
|
|
751
|
+
client=self._client,
|
|
752
|
+
teamspace_id=teamspace_id,
|
|
753
|
+
cloud_account=cloud_account,
|
|
754
|
+
file_path=file_path,
|
|
755
|
+
remote_path=_sanitize_studio_remote_path(remote_path, studio_id),
|
|
756
|
+
progress_bar=progress_bar,
|
|
757
|
+
)()
|
|
752
758
|
|
|
753
759
|
def download_file(
|
|
754
760
|
self,
|
|
@@ -10,11 +10,15 @@ import requests
|
|
|
10
10
|
from tqdm.auto import tqdm
|
|
11
11
|
|
|
12
12
|
from lightning_sdk.api.utils import (
|
|
13
|
+
_MAX_SIZE_MULTI_PART_CHUNK,
|
|
13
14
|
_authenticate_and_get_token,
|
|
14
15
|
_download_model_files,
|
|
15
16
|
_DummyBody,
|
|
17
|
+
_FileUploader,
|
|
16
18
|
_get_model_version,
|
|
17
19
|
_ModelFileUploader,
|
|
20
|
+
_resolve_teamspace_remote_path,
|
|
21
|
+
_SinglePartFileUploader,
|
|
18
22
|
)
|
|
19
23
|
from lightning_sdk.lightning_cloud.login import Auth
|
|
20
24
|
from lightning_sdk.lightning_cloud.openapi import (
|
|
@@ -451,34 +455,40 @@ class TeamspaceApi:
|
|
|
451
455
|
file_path: str,
|
|
452
456
|
remote_path: str,
|
|
453
457
|
progress_bar: bool,
|
|
458
|
+
headers: Optional[Dict[str, str]] = None,
|
|
454
459
|
) -> None:
|
|
455
|
-
"""Uploads file to given remote path in the Teamspace drive
|
|
456
|
-
token = _authenticate_and_get_token(self._client)
|
|
460
|
+
"""Uploads file to given remote path in the Teamspace drive.
|
|
457
461
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
462
|
+
Uses single-part upload for files <= 5MB, multipart upload for larger files.
|
|
463
|
+
"""
|
|
464
|
+
file_size = os.path.getsize(file_path)
|
|
465
|
+
|
|
466
|
+
multipart_threshold = int(os.environ.get("LIGHTNING_MULTIPART_THRESHOLD", _MAX_SIZE_MULTI_PART_CHUNK))
|
|
467
|
+
|
|
468
|
+
if file_size <= multipart_threshold:
|
|
469
|
+
token = _authenticate_and_get_token(self._client)
|
|
470
|
+
|
|
471
|
+
query_params = {"token": token, "clusterId": cloud_account}
|
|
472
|
+
client_host = self._client.api_client.configuration.host
|
|
473
|
+
url = f"{client_host}/v1/projects/{teamspace_id}/artifacts/blobs/{remote_path}"
|
|
474
|
+
|
|
475
|
+
_SinglePartFileUploader(
|
|
476
|
+
client=self._client,
|
|
477
|
+
file_path=file_path,
|
|
478
|
+
url=url,
|
|
479
|
+
query_params=query_params,
|
|
480
|
+
progress_bar=progress_bar,
|
|
481
|
+
headers=headers,
|
|
482
|
+
)()
|
|
483
|
+
else:
|
|
484
|
+
_FileUploader(
|
|
485
|
+
client=self._client,
|
|
486
|
+
teamspace_id=teamspace_id,
|
|
487
|
+
cloud_account=cloud_account,
|
|
488
|
+
file_path=file_path,
|
|
489
|
+
remote_path=_resolve_teamspace_remote_path(remote_path),
|
|
490
|
+
progress_bar=progress_bar,
|
|
491
|
+
)()
|
|
482
492
|
|
|
483
493
|
def download_file(
|
|
484
494
|
self,
|
lightning_sdk/api/utils.py
CHANGED
|
@@ -59,6 +59,66 @@ _MAX_BATCH_SIZE = 50
|
|
|
59
59
|
_MAX_WORKERS = 10
|
|
60
60
|
|
|
61
61
|
|
|
62
|
+
class _SinglePartFileUploader:
|
|
63
|
+
"""A class handling upload files to studio and teamspace drive with new endpoint."""
|
|
64
|
+
|
|
65
|
+
def __init__(
|
|
66
|
+
self,
|
|
67
|
+
client: LightningClient,
|
|
68
|
+
file_path: str,
|
|
69
|
+
url: str,
|
|
70
|
+
query_params: Dict[str, str],
|
|
71
|
+
progress_bar: bool,
|
|
72
|
+
headers: Optional[Dict[str, str]] = None,
|
|
73
|
+
) -> None:
|
|
74
|
+
self.client = client
|
|
75
|
+
self.local_path = file_path
|
|
76
|
+
self.url = url
|
|
77
|
+
self.query_params = query_params
|
|
78
|
+
self.headers = headers
|
|
79
|
+
self.filesize = os.path.getsize(file_path)
|
|
80
|
+
|
|
81
|
+
if progress_bar:
|
|
82
|
+
self.progress_bar = tqdm(
|
|
83
|
+
desc=f"Uploading {os.path.split(file_path)[1]}",
|
|
84
|
+
total=self.filesize,
|
|
85
|
+
unit="B",
|
|
86
|
+
unit_scale=True,
|
|
87
|
+
unit_divisor=1000,
|
|
88
|
+
position=-1,
|
|
89
|
+
mininterval=1,
|
|
90
|
+
)
|
|
91
|
+
else:
|
|
92
|
+
self.progress_bar = None
|
|
93
|
+
|
|
94
|
+
def __call__(self) -> None:
|
|
95
|
+
self._upload_with_retry()
|
|
96
|
+
|
|
97
|
+
@backoff.on_exception(
|
|
98
|
+
backoff.expo, (requests.exceptions.HTTPError, requests.exceptions.RequestException), max_tries=10
|
|
99
|
+
)
|
|
100
|
+
def _upload_with_retry(self) -> None:
|
|
101
|
+
with open(self.local_path, "rb") as f:
|
|
102
|
+
if self.progress_bar is not None:
|
|
103
|
+
with tqdm.wrapattr(
|
|
104
|
+
f,
|
|
105
|
+
"read",
|
|
106
|
+
desc=f"Uploading {os.path.split(self.local_path)[1]}",
|
|
107
|
+
total=self.filesize,
|
|
108
|
+
unit="B",
|
|
109
|
+
unit_scale=True,
|
|
110
|
+
unit_divisor=1000,
|
|
111
|
+
) as wrapped_file:
|
|
112
|
+
r = requests.put(
|
|
113
|
+
self.url, data=wrapped_file, params=self.query_params, timeout=30, headers=self.headers
|
|
114
|
+
)
|
|
115
|
+
else:
|
|
116
|
+
r = requests.put(self.url, data=f, params=self.query_params, timeout=30, headers=self.headers)
|
|
117
|
+
|
|
118
|
+
if r.status_code != 200:
|
|
119
|
+
raise RuntimeError(f"Failed to upload file '{self.local_path}'. Status code: {r.status_code}")
|
|
120
|
+
|
|
121
|
+
|
|
62
122
|
class _FileUploader:
|
|
63
123
|
"""A class handling the upload to studios.
|
|
64
124
|
|
|
@@ -358,7 +418,7 @@ def _sanitize_studio_remote_path(path: str, studio_id: str) -> str:
|
|
|
358
418
|
|
|
359
419
|
|
|
360
420
|
def _resolve_teamspace_remote_path(path: str) -> str:
|
|
361
|
-
return f"
|
|
421
|
+
return f"{path.replace('/teamspace/', '')}"
|
|
362
422
|
|
|
363
423
|
|
|
364
424
|
_DOWNLOAD_REQUEST_CHUNK_SIZE = 10 * _BYTES_PER_MB
|
|
@@ -4,7 +4,7 @@ from pathlib import Path
|
|
|
4
4
|
from rich.console import Console
|
|
5
5
|
|
|
6
6
|
from lightning_sdk.api.utils import _get_cloud_url
|
|
7
|
-
from lightning_sdk.cli.utils.filesystem import parse_teamspace_uploads_path, resolve_teamspace
|
|
7
|
+
from lightning_sdk.cli.utils.filesystem import parse_teamspace_uploads_path, path_join, resolve_teamspace
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
def cp_upload(
|
|
@@ -20,6 +20,8 @@ def cp_upload(
|
|
|
20
20
|
|
|
21
21
|
teamspace_path_result = parse_teamspace_uploads_path(teamspace_path)
|
|
22
22
|
|
|
23
|
+
teamspace_path_result["destination"] = path_join("Uploads", teamspace_path_result["destination"])
|
|
24
|
+
|
|
23
25
|
selected_teamspace = resolve_teamspace(teamspace_path_result["teamspace"], teamspace_path_result["owner"])
|
|
24
26
|
console.print(f"Uploading to {selected_teamspace.owner.name}/{selected_teamspace.name}")
|
|
25
27
|
|
|
@@ -33,7 +35,7 @@ def cp_upload(
|
|
|
33
35
|
if teamspace_path.endswith(("/", "\\")):
|
|
34
36
|
# if destination ends with / or \, treat it as a directory
|
|
35
37
|
file_name = os.path.basename(local_file_path)
|
|
36
|
-
teamspace_path_result["destination"] =
|
|
38
|
+
teamspace_path_result["destination"] = path_join(teamspace_path_result["destination"], file_name)
|
|
37
39
|
selected_teamspace.upload_file(
|
|
38
40
|
local_file_path, teamspace_path_result["destination"], cloud_account=cloud_account
|
|
39
41
|
)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import os
|
|
2
|
+
from typing import Any, Optional, TypedDict
|
|
2
3
|
|
|
3
4
|
from lightning_sdk.cli.utils.owner_selection import OwnerMenu
|
|
4
5
|
from lightning_sdk.cli.utils.studio_selection import StudiosMenu
|
|
@@ -14,6 +15,10 @@ class PathResult(TypedDict):
|
|
|
14
15
|
destination: Optional[str]
|
|
15
16
|
|
|
16
17
|
|
|
18
|
+
def path_join(*args: Any) -> str:
|
|
19
|
+
return os.path.join(*args).replace("\\", "/")
|
|
20
|
+
|
|
21
|
+
|
|
17
22
|
def parse_studio_path(studio_path: str) -> PathResult:
|
|
18
23
|
path_string = studio_path.removeprefix("lit://")
|
|
19
24
|
if not path_string:
|
|
@@ -141,6 +141,7 @@ from lightning_sdk.lightning_cloud.openapi.models.cluster_service_create_machine
|
|
|
141
141
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_create_org_cluster_capacity_reservation_body import ClusterServiceCreateOrgClusterCapacityReservationBody
|
|
142
142
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_create_project_cluster_body import ClusterServiceCreateProjectClusterBody
|
|
143
143
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_create_server_alert_body import ClusterServiceCreateServerAlertBody
|
|
144
|
+
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_get_cluster_capacity_reservation_body import ClusterServiceGetClusterCapacityReservationBody
|
|
144
145
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_interrupt_server_body import ClusterServiceInterruptServerBody
|
|
145
146
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_purchase_capacity_block_body import ClusterServicePurchaseCapacityBlockBody
|
|
146
147
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_report_machine_system_metrics_body import ClusterServiceReportMachineSystemMetricsBody
|
|
@@ -648,6 +649,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_required_ba
|
|
|
648
649
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_size_response import V1GetCloudSpaceSizeResponse
|
|
649
650
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_transfer_estimate_response import V1GetCloudSpaceTransferEstimateResponse
|
|
650
651
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cluster_accelerator_demand_response import V1GetClusterAcceleratorDemandResponse
|
|
652
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cluster_capacity_reservation_response import V1GetClusterCapacityReservationResponse
|
|
651
653
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cluster_credentials_response import V1GetClusterCredentialsResponse
|
|
652
654
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cluster_health_response import V1GetClusterHealthResponse
|
|
653
655
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_deployment_routing_telemetry_aggregated_response import V1GetDeploymentRoutingTelemetryAggregatedResponse
|
|
@@ -1139,6 +1141,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_update_cloud_space_visibili
|
|
|
1139
1141
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cluster_accelerators_request import V1UpdateClusterAcceleratorsRequest
|
|
1140
1142
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cluster_accelerators_response import V1UpdateClusterAcceleratorsResponse
|
|
1141
1143
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cluster_availability_request import V1UpdateClusterAvailabilityRequest
|
|
1144
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_update_container_registry_response import V1UpdateContainerRegistryResponse
|
|
1142
1145
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_conversation_like_response import V1UpdateConversationLikeResponse
|
|
1143
1146
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_conversation_message_content_response import V1UpdateConversationMessageContentResponse
|
|
1144
1147
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_conversation_message_like_response import V1UpdateConversationMessageLikeResponse
|
|
@@ -2470,6 +2470,127 @@ class ClusterServiceApi(object):
|
|
|
2470
2470
|
_request_timeout=params.get('_request_timeout'),
|
|
2471
2471
|
collection_formats=collection_formats)
|
|
2472
2472
|
|
|
2473
|
+
def cluster_service_get_cluster_capacity_reservation(self, body: 'ClusterServiceGetClusterCapacityReservationBody', project_id: 'str', cluster_id: 'str', id: 'str', **kwargs) -> 'V1GetClusterCapacityReservationResponse': # noqa: E501
|
|
2474
|
+
"""capacity reservation # noqa: E501
|
|
2475
|
+
|
|
2476
|
+
This method makes a synchronous HTTP request by default. To make an
|
|
2477
|
+
asynchronous HTTP request, please pass async_req=True
|
|
2478
|
+
>>> thread = api.cluster_service_get_cluster_capacity_reservation(body, project_id, cluster_id, id, async_req=True)
|
|
2479
|
+
>>> result = thread.get()
|
|
2480
|
+
|
|
2481
|
+
:param async_req bool
|
|
2482
|
+
:param ClusterServiceGetClusterCapacityReservationBody body: (required)
|
|
2483
|
+
:param str project_id: (required)
|
|
2484
|
+
:param str cluster_id: (required)
|
|
2485
|
+
:param str id: capacity reservation id (required)
|
|
2486
|
+
:return: V1GetClusterCapacityReservationResponse
|
|
2487
|
+
If the method is called asynchronously,
|
|
2488
|
+
returns the request thread.
|
|
2489
|
+
"""
|
|
2490
|
+
kwargs['_return_http_data_only'] = True
|
|
2491
|
+
if kwargs.get('async_req'):
|
|
2492
|
+
return self.cluster_service_get_cluster_capacity_reservation_with_http_info(body, project_id, cluster_id, id, **kwargs) # noqa: E501
|
|
2493
|
+
else:
|
|
2494
|
+
(data) = self.cluster_service_get_cluster_capacity_reservation_with_http_info(body, project_id, cluster_id, id, **kwargs) # noqa: E501
|
|
2495
|
+
return data
|
|
2496
|
+
|
|
2497
|
+
def cluster_service_get_cluster_capacity_reservation_with_http_info(self, body: 'ClusterServiceGetClusterCapacityReservationBody', project_id: 'str', cluster_id: 'str', id: 'str', **kwargs) -> 'V1GetClusterCapacityReservationResponse': # noqa: E501
|
|
2498
|
+
"""capacity reservation # noqa: E501
|
|
2499
|
+
|
|
2500
|
+
This method makes a synchronous HTTP request by default. To make an
|
|
2501
|
+
asynchronous HTTP request, please pass async_req=True
|
|
2502
|
+
>>> thread = api.cluster_service_get_cluster_capacity_reservation_with_http_info(body, project_id, cluster_id, id, async_req=True)
|
|
2503
|
+
>>> result = thread.get()
|
|
2504
|
+
|
|
2505
|
+
:param async_req bool
|
|
2506
|
+
:param ClusterServiceGetClusterCapacityReservationBody body: (required)
|
|
2507
|
+
:param str project_id: (required)
|
|
2508
|
+
:param str cluster_id: (required)
|
|
2509
|
+
:param str id: capacity reservation id (required)
|
|
2510
|
+
:return: V1GetClusterCapacityReservationResponse
|
|
2511
|
+
If the method is called asynchronously,
|
|
2512
|
+
returns the request thread.
|
|
2513
|
+
"""
|
|
2514
|
+
|
|
2515
|
+
all_params = ['body', 'project_id', 'cluster_id', 'id'] # noqa: E501
|
|
2516
|
+
all_params.append('async_req')
|
|
2517
|
+
all_params.append('_return_http_data_only')
|
|
2518
|
+
all_params.append('_preload_content')
|
|
2519
|
+
all_params.append('_request_timeout')
|
|
2520
|
+
|
|
2521
|
+
params = locals()
|
|
2522
|
+
for key, val in six.iteritems(params['kwargs']):
|
|
2523
|
+
if key not in all_params:
|
|
2524
|
+
raise TypeError(
|
|
2525
|
+
"Got an unexpected keyword argument '%s'"
|
|
2526
|
+
" to method cluster_service_get_cluster_capacity_reservation" % key
|
|
2527
|
+
)
|
|
2528
|
+
params[key] = val
|
|
2529
|
+
del params['kwargs']
|
|
2530
|
+
# verify the required parameter 'body' is set
|
|
2531
|
+
if ('body' not in params or
|
|
2532
|
+
params['body'] is None):
|
|
2533
|
+
raise ValueError("Missing the required parameter `body` when calling `cluster_service_get_cluster_capacity_reservation`") # noqa: E501
|
|
2534
|
+
# verify the required parameter 'project_id' is set
|
|
2535
|
+
if ('project_id' not in params or
|
|
2536
|
+
params['project_id'] is None):
|
|
2537
|
+
raise ValueError("Missing the required parameter `project_id` when calling `cluster_service_get_cluster_capacity_reservation`") # noqa: E501
|
|
2538
|
+
# verify the required parameter 'cluster_id' is set
|
|
2539
|
+
if ('cluster_id' not in params or
|
|
2540
|
+
params['cluster_id'] is None):
|
|
2541
|
+
raise ValueError("Missing the required parameter `cluster_id` when calling `cluster_service_get_cluster_capacity_reservation`") # noqa: E501
|
|
2542
|
+
# verify the required parameter 'id' is set
|
|
2543
|
+
if ('id' not in params or
|
|
2544
|
+
params['id'] is None):
|
|
2545
|
+
raise ValueError("Missing the required parameter `id` when calling `cluster_service_get_cluster_capacity_reservation`") # noqa: E501
|
|
2546
|
+
|
|
2547
|
+
collection_formats = {}
|
|
2548
|
+
|
|
2549
|
+
path_params = {}
|
|
2550
|
+
if 'project_id' in params:
|
|
2551
|
+
path_params['projectId'] = params['project_id'] # noqa: E501
|
|
2552
|
+
if 'cluster_id' in params:
|
|
2553
|
+
path_params['clusterId'] = params['cluster_id'] # noqa: E501
|
|
2554
|
+
if 'id' in params:
|
|
2555
|
+
path_params['id'] = params['id'] # noqa: E501
|
|
2556
|
+
|
|
2557
|
+
query_params = []
|
|
2558
|
+
|
|
2559
|
+
header_params = {}
|
|
2560
|
+
|
|
2561
|
+
form_params = []
|
|
2562
|
+
local_var_files = {}
|
|
2563
|
+
|
|
2564
|
+
body_params = None
|
|
2565
|
+
if 'body' in params:
|
|
2566
|
+
body_params = params['body']
|
|
2567
|
+
# HTTP header `Accept`
|
|
2568
|
+
header_params['Accept'] = self.api_client.select_header_accept(
|
|
2569
|
+
['application/json']) # noqa: E501
|
|
2570
|
+
|
|
2571
|
+
# HTTP header `Content-Type`
|
|
2572
|
+
header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
|
|
2573
|
+
['application/json']) # noqa: E501
|
|
2574
|
+
|
|
2575
|
+
# Authentication setting
|
|
2576
|
+
auth_settings = [] # noqa: E501
|
|
2577
|
+
|
|
2578
|
+
return self.api_client.call_api(
|
|
2579
|
+
'/v1/projects/{projectId}/clusters/{clusterId}/capacity-reservations/{id}', 'POST',
|
|
2580
|
+
path_params,
|
|
2581
|
+
query_params,
|
|
2582
|
+
header_params,
|
|
2583
|
+
body=body_params,
|
|
2584
|
+
post_params=form_params,
|
|
2585
|
+
files=local_var_files,
|
|
2586
|
+
response_type='V1GetClusterCapacityReservationResponse', # noqa: E501
|
|
2587
|
+
auth_settings=auth_settings,
|
|
2588
|
+
async_req=params.get('async_req'),
|
|
2589
|
+
_return_http_data_only=params.get('_return_http_data_only'),
|
|
2590
|
+
_preload_content=params.get('_preload_content', True),
|
|
2591
|
+
_request_timeout=params.get('_request_timeout'),
|
|
2592
|
+
collection_formats=collection_formats)
|
|
2593
|
+
|
|
2473
2594
|
def cluster_service_get_cluster_credentials(self, **kwargs) -> 'V1GetClusterCredentialsResponse': # noqa: E501
|
|
2474
2595
|
"""cluster_service_get_cluster_credentials # noqa: E501
|
|
2475
2596
|
|
|
@@ -454,3 +454,126 @@ class ContainerRegistryServiceApi(object):
|
|
|
454
454
|
_preload_content=params.get('_preload_content', True),
|
|
455
455
|
_request_timeout=params.get('_request_timeout'),
|
|
456
456
|
collection_formats=collection_formats)
|
|
457
|
+
|
|
458
|
+
def container_registry_service_update_container_registry(self, cluster_id: 'str', id: 'str', **kwargs) -> 'V1UpdateContainerRegistryResponse': # noqa: E501
|
|
459
|
+
"""container_registry_service_update_container_registry # noqa: E501
|
|
460
|
+
|
|
461
|
+
This method makes a synchronous HTTP request by default. To make an
|
|
462
|
+
asynchronous HTTP request, please pass async_req=True
|
|
463
|
+
>>> thread = api.container_registry_service_update_container_registry(cluster_id, id, async_req=True)
|
|
464
|
+
>>> result = thread.get()
|
|
465
|
+
|
|
466
|
+
:param async_req bool
|
|
467
|
+
:param str cluster_id: (required)
|
|
468
|
+
:param str id: (required)
|
|
469
|
+
:param str org_id:
|
|
470
|
+
:param str url:
|
|
471
|
+
:param str provider:
|
|
472
|
+
:param list[str] scopes_namespaces: for k8s org clusters
|
|
473
|
+
:param list[str] scopes_project_ids: for byoc cloud accounts
|
|
474
|
+
:return: V1UpdateContainerRegistryResponse
|
|
475
|
+
If the method is called asynchronously,
|
|
476
|
+
returns the request thread.
|
|
477
|
+
"""
|
|
478
|
+
kwargs['_return_http_data_only'] = True
|
|
479
|
+
if kwargs.get('async_req'):
|
|
480
|
+
return self.container_registry_service_update_container_registry_with_http_info(cluster_id, id, **kwargs) # noqa: E501
|
|
481
|
+
else:
|
|
482
|
+
(data) = self.container_registry_service_update_container_registry_with_http_info(cluster_id, id, **kwargs) # noqa: E501
|
|
483
|
+
return data
|
|
484
|
+
|
|
485
|
+
def container_registry_service_update_container_registry_with_http_info(self, cluster_id: 'str', id: 'str', **kwargs) -> 'V1UpdateContainerRegistryResponse': # noqa: E501
|
|
486
|
+
"""container_registry_service_update_container_registry # noqa: E501
|
|
487
|
+
|
|
488
|
+
This method makes a synchronous HTTP request by default. To make an
|
|
489
|
+
asynchronous HTTP request, please pass async_req=True
|
|
490
|
+
>>> thread = api.container_registry_service_update_container_registry_with_http_info(cluster_id, id, async_req=True)
|
|
491
|
+
>>> result = thread.get()
|
|
492
|
+
|
|
493
|
+
:param async_req bool
|
|
494
|
+
:param str cluster_id: (required)
|
|
495
|
+
:param str id: (required)
|
|
496
|
+
:param str org_id:
|
|
497
|
+
:param str url:
|
|
498
|
+
:param str provider:
|
|
499
|
+
:param list[str] scopes_namespaces: for k8s org clusters
|
|
500
|
+
:param list[str] scopes_project_ids: for byoc cloud accounts
|
|
501
|
+
:return: V1UpdateContainerRegistryResponse
|
|
502
|
+
If the method is called asynchronously,
|
|
503
|
+
returns the request thread.
|
|
504
|
+
"""
|
|
505
|
+
|
|
506
|
+
all_params = ['cluster_id', 'id', 'org_id', 'url', 'provider', 'scopes_namespaces', 'scopes_project_ids'] # noqa: E501
|
|
507
|
+
all_params.append('async_req')
|
|
508
|
+
all_params.append('_return_http_data_only')
|
|
509
|
+
all_params.append('_preload_content')
|
|
510
|
+
all_params.append('_request_timeout')
|
|
511
|
+
|
|
512
|
+
params = locals()
|
|
513
|
+
for key, val in six.iteritems(params['kwargs']):
|
|
514
|
+
if key not in all_params:
|
|
515
|
+
raise TypeError(
|
|
516
|
+
"Got an unexpected keyword argument '%s'"
|
|
517
|
+
" to method container_registry_service_update_container_registry" % key
|
|
518
|
+
)
|
|
519
|
+
params[key] = val
|
|
520
|
+
del params['kwargs']
|
|
521
|
+
# verify the required parameter 'cluster_id' is set
|
|
522
|
+
if ('cluster_id' not in params or
|
|
523
|
+
params['cluster_id'] is None):
|
|
524
|
+
raise ValueError("Missing the required parameter `cluster_id` when calling `container_registry_service_update_container_registry`") # noqa: E501
|
|
525
|
+
# verify the required parameter 'id' is set
|
|
526
|
+
if ('id' not in params or
|
|
527
|
+
params['id'] is None):
|
|
528
|
+
raise ValueError("Missing the required parameter `id` when calling `container_registry_service_update_container_registry`") # noqa: E501
|
|
529
|
+
|
|
530
|
+
collection_formats = {}
|
|
531
|
+
|
|
532
|
+
path_params = {}
|
|
533
|
+
if 'cluster_id' in params:
|
|
534
|
+
path_params['clusterId'] = params['cluster_id'] # noqa: E501
|
|
535
|
+
if 'id' in params:
|
|
536
|
+
path_params['id'] = params['id'] # noqa: E501
|
|
537
|
+
|
|
538
|
+
query_params = []
|
|
539
|
+
if 'org_id' in params:
|
|
540
|
+
query_params.append(('orgId', params['org_id'])) # noqa: E501
|
|
541
|
+
if 'url' in params:
|
|
542
|
+
query_params.append(('url', params['url'])) # noqa: E501
|
|
543
|
+
if 'provider' in params:
|
|
544
|
+
query_params.append(('provider', params['provider'])) # noqa: E501
|
|
545
|
+
if 'scopes_namespaces' in params:
|
|
546
|
+
query_params.append(('scopes.namespaces', params['scopes_namespaces'])) # noqa: E501
|
|
547
|
+
collection_formats['scopes.namespaces'] = 'multi' # noqa: E501
|
|
548
|
+
if 'scopes_project_ids' in params:
|
|
549
|
+
query_params.append(('scopes.projectIds', params['scopes_project_ids'])) # noqa: E501
|
|
550
|
+
collection_formats['scopes.projectIds'] = 'multi' # noqa: E501
|
|
551
|
+
|
|
552
|
+
header_params = {}
|
|
553
|
+
|
|
554
|
+
form_params = []
|
|
555
|
+
local_var_files = {}
|
|
556
|
+
|
|
557
|
+
body_params = None
|
|
558
|
+
# HTTP header `Accept`
|
|
559
|
+
header_params['Accept'] = self.api_client.select_header_accept(
|
|
560
|
+
['application/json']) # noqa: E501
|
|
561
|
+
|
|
562
|
+
# Authentication setting
|
|
563
|
+
auth_settings = [] # noqa: E501
|
|
564
|
+
|
|
565
|
+
return self.api_client.call_api(
|
|
566
|
+
'/v1/core/clusters/{clusterId}/container-registries/{id}', 'PATCH',
|
|
567
|
+
path_params,
|
|
568
|
+
query_params,
|
|
569
|
+
header_params,
|
|
570
|
+
body=body_params,
|
|
571
|
+
post_params=form_params,
|
|
572
|
+
files=local_var_files,
|
|
573
|
+
response_type='V1UpdateContainerRegistryResponse', # noqa: E501
|
|
574
|
+
auth_settings=auth_settings,
|
|
575
|
+
async_req=params.get('async_req'),
|
|
576
|
+
_return_http_data_only=params.get('_return_http_data_only'),
|
|
577
|
+
_preload_content=params.get('_preload_content', True),
|
|
578
|
+
_request_timeout=params.get('_request_timeout'),
|
|
579
|
+
collection_formats=collection_formats)
|
|
@@ -88,6 +88,7 @@ from lightning_sdk.lightning_cloud.openapi.models.cluster_service_create_machine
|
|
|
88
88
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_create_org_cluster_capacity_reservation_body import ClusterServiceCreateOrgClusterCapacityReservationBody
|
|
89
89
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_create_project_cluster_body import ClusterServiceCreateProjectClusterBody
|
|
90
90
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_create_server_alert_body import ClusterServiceCreateServerAlertBody
|
|
91
|
+
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_get_cluster_capacity_reservation_body import ClusterServiceGetClusterCapacityReservationBody
|
|
91
92
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_interrupt_server_body import ClusterServiceInterruptServerBody
|
|
92
93
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_purchase_capacity_block_body import ClusterServicePurchaseCapacityBlockBody
|
|
93
94
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_service_report_machine_system_metrics_body import ClusterServiceReportMachineSystemMetricsBody
|
|
@@ -595,6 +596,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_required_ba
|
|
|
595
596
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_size_response import V1GetCloudSpaceSizeResponse
|
|
596
597
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_transfer_estimate_response import V1GetCloudSpaceTransferEstimateResponse
|
|
597
598
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cluster_accelerator_demand_response import V1GetClusterAcceleratorDemandResponse
|
|
599
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cluster_capacity_reservation_response import V1GetClusterCapacityReservationResponse
|
|
598
600
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cluster_credentials_response import V1GetClusterCredentialsResponse
|
|
599
601
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cluster_health_response import V1GetClusterHealthResponse
|
|
600
602
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_deployment_routing_telemetry_aggregated_response import V1GetDeploymentRoutingTelemetryAggregatedResponse
|
|
@@ -1086,6 +1088,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_update_cloud_space_visibili
|
|
|
1086
1088
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cluster_accelerators_request import V1UpdateClusterAcceleratorsRequest
|
|
1087
1089
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cluster_accelerators_response import V1UpdateClusterAcceleratorsResponse
|
|
1088
1090
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cluster_availability_request import V1UpdateClusterAvailabilityRequest
|
|
1091
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_update_container_registry_response import V1UpdateContainerRegistryResponse
|
|
1089
1092
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_conversation_like_response import V1UpdateConversationLikeResponse
|
|
1090
1093
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_conversation_message_content_response import V1UpdateConversationMessageContentResponse
|
|
1091
1094
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_conversation_message_like_response import V1UpdateConversationMessageLikeResponse
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
external/v1/auth_service.proto
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
|
|
7
|
+
|
|
8
|
+
OpenAPI spec version: version not set
|
|
9
|
+
|
|
10
|
+
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
11
|
+
|
|
12
|
+
NOTE
|
|
13
|
+
----
|
|
14
|
+
standard swagger-codegen-cli for this python client has been modified
|
|
15
|
+
by custom templates. The purpose of these templates is to include
|
|
16
|
+
typing information in the API and Model code. Please refer to the
|
|
17
|
+
main grid repository for more info
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
import pprint
|
|
21
|
+
import re # noqa: F401
|
|
22
|
+
|
|
23
|
+
from typing import TYPE_CHECKING
|
|
24
|
+
|
|
25
|
+
import six
|
|
26
|
+
|
|
27
|
+
if TYPE_CHECKING:
|
|
28
|
+
from datetime import datetime
|
|
29
|
+
from lightning_sdk.lightning_cloud.openapi.models import *
|
|
30
|
+
|
|
31
|
+
class ClusterServiceGetClusterCapacityReservationBody(object):
|
|
32
|
+
"""NOTE: This class is auto generated by the swagger code generator program.
|
|
33
|
+
|
|
34
|
+
Do not edit the class manually.
|
|
35
|
+
"""
|
|
36
|
+
"""
|
|
37
|
+
Attributes:
|
|
38
|
+
swagger_types (dict): The key is attribute name
|
|
39
|
+
and the value is attribute type.
|
|
40
|
+
attribute_map (dict): The key is attribute name
|
|
41
|
+
and the value is json key in definition.
|
|
42
|
+
"""
|
|
43
|
+
swagger_types = {
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
attribute_map = {
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
def __init__(self): # noqa: E501
|
|
50
|
+
"""ClusterServiceGetClusterCapacityReservationBody - a model defined in Swagger""" # noqa: E501
|
|
51
|
+
self.discriminator = None
|
|
52
|
+
|
|
53
|
+
def to_dict(self) -> dict:
|
|
54
|
+
"""Returns the model properties as a dict"""
|
|
55
|
+
result = {}
|
|
56
|
+
|
|
57
|
+
for attr, _ in six.iteritems(self.swagger_types):
|
|
58
|
+
value = getattr(self, attr)
|
|
59
|
+
if isinstance(value, list):
|
|
60
|
+
result[attr] = list(map(
|
|
61
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
|
62
|
+
value
|
|
63
|
+
))
|
|
64
|
+
elif hasattr(value, "to_dict"):
|
|
65
|
+
result[attr] = value.to_dict()
|
|
66
|
+
elif isinstance(value, dict):
|
|
67
|
+
result[attr] = dict(map(
|
|
68
|
+
lambda item: (item[0], item[1].to_dict())
|
|
69
|
+
if hasattr(item[1], "to_dict") else item,
|
|
70
|
+
value.items()
|
|
71
|
+
))
|
|
72
|
+
else:
|
|
73
|
+
result[attr] = value
|
|
74
|
+
if issubclass(ClusterServiceGetClusterCapacityReservationBody, dict):
|
|
75
|
+
for key, value in self.items():
|
|
76
|
+
result[key] = value
|
|
77
|
+
|
|
78
|
+
return result
|
|
79
|
+
|
|
80
|
+
def to_str(self) -> str:
|
|
81
|
+
"""Returns the string representation of the model"""
|
|
82
|
+
return pprint.pformat(self.to_dict())
|
|
83
|
+
|
|
84
|
+
def __repr__(self) -> str:
|
|
85
|
+
"""For `print` and `pprint`"""
|
|
86
|
+
return self.to_str()
|
|
87
|
+
|
|
88
|
+
def __eq__(self, other: 'ClusterServiceGetClusterCapacityReservationBody') -> bool:
|
|
89
|
+
"""Returns true if both objects are equal"""
|
|
90
|
+
if not isinstance(other, ClusterServiceGetClusterCapacityReservationBody):
|
|
91
|
+
return False
|
|
92
|
+
|
|
93
|
+
return self.__dict__ == other.__dict__
|
|
94
|
+
|
|
95
|
+
def __ne__(self, other: 'ClusterServiceGetClusterCapacityReservationBody') -> bool:
|
|
96
|
+
"""Returns true if both objects are not equal"""
|
|
97
|
+
return not self == other
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
external/v1/auth_service.proto
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
|
|
7
|
+
|
|
8
|
+
OpenAPI spec version: version not set
|
|
9
|
+
|
|
10
|
+
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
11
|
+
|
|
12
|
+
NOTE
|
|
13
|
+
----
|
|
14
|
+
standard swagger-codegen-cli for this python client has been modified
|
|
15
|
+
by custom templates. The purpose of these templates is to include
|
|
16
|
+
typing information in the API and Model code. Please refer to the
|
|
17
|
+
main grid repository for more info
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
import pprint
|
|
21
|
+
import re # noqa: F401
|
|
22
|
+
|
|
23
|
+
from typing import TYPE_CHECKING
|
|
24
|
+
|
|
25
|
+
import six
|
|
26
|
+
|
|
27
|
+
if TYPE_CHECKING:
|
|
28
|
+
from datetime import datetime
|
|
29
|
+
from lightning_sdk.lightning_cloud.openapi.models import *
|
|
30
|
+
|
|
31
|
+
class V1GetClusterCapacityReservationResponse(object):
|
|
32
|
+
"""NOTE: This class is auto generated by the swagger code generator program.
|
|
33
|
+
|
|
34
|
+
Do not edit the class manually.
|
|
35
|
+
"""
|
|
36
|
+
"""
|
|
37
|
+
Attributes:
|
|
38
|
+
swagger_types (dict): The key is attribute name
|
|
39
|
+
and the value is attribute type.
|
|
40
|
+
attribute_map (dict): The key is attribute name
|
|
41
|
+
and the value is json key in definition.
|
|
42
|
+
"""
|
|
43
|
+
swagger_types = {
|
|
44
|
+
'capacity_reservation': 'V1ClusterCapacityReservation'
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
attribute_map = {
|
|
48
|
+
'capacity_reservation': 'capacityReservation'
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
def __init__(self, capacity_reservation: 'V1ClusterCapacityReservation' =None): # noqa: E501
|
|
52
|
+
"""V1GetClusterCapacityReservationResponse - a model defined in Swagger""" # noqa: E501
|
|
53
|
+
self._capacity_reservation = None
|
|
54
|
+
self.discriminator = None
|
|
55
|
+
if capacity_reservation is not None:
|
|
56
|
+
self.capacity_reservation = capacity_reservation
|
|
57
|
+
|
|
58
|
+
@property
|
|
59
|
+
def capacity_reservation(self) -> 'V1ClusterCapacityReservation':
|
|
60
|
+
"""Gets the capacity_reservation of this V1GetClusterCapacityReservationResponse. # noqa: E501
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
:return: The capacity_reservation of this V1GetClusterCapacityReservationResponse. # noqa: E501
|
|
64
|
+
:rtype: V1ClusterCapacityReservation
|
|
65
|
+
"""
|
|
66
|
+
return self._capacity_reservation
|
|
67
|
+
|
|
68
|
+
@capacity_reservation.setter
|
|
69
|
+
def capacity_reservation(self, capacity_reservation: 'V1ClusterCapacityReservation'):
|
|
70
|
+
"""Sets the capacity_reservation of this V1GetClusterCapacityReservationResponse.
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
:param capacity_reservation: The capacity_reservation of this V1GetClusterCapacityReservationResponse. # noqa: E501
|
|
74
|
+
:type: V1ClusterCapacityReservation
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
self._capacity_reservation = capacity_reservation
|
|
78
|
+
|
|
79
|
+
def to_dict(self) -> dict:
|
|
80
|
+
"""Returns the model properties as a dict"""
|
|
81
|
+
result = {}
|
|
82
|
+
|
|
83
|
+
for attr, _ in six.iteritems(self.swagger_types):
|
|
84
|
+
value = getattr(self, attr)
|
|
85
|
+
if isinstance(value, list):
|
|
86
|
+
result[attr] = list(map(
|
|
87
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
|
88
|
+
value
|
|
89
|
+
))
|
|
90
|
+
elif hasattr(value, "to_dict"):
|
|
91
|
+
result[attr] = value.to_dict()
|
|
92
|
+
elif isinstance(value, dict):
|
|
93
|
+
result[attr] = dict(map(
|
|
94
|
+
lambda item: (item[0], item[1].to_dict())
|
|
95
|
+
if hasattr(item[1], "to_dict") else item,
|
|
96
|
+
value.items()
|
|
97
|
+
))
|
|
98
|
+
else:
|
|
99
|
+
result[attr] = value
|
|
100
|
+
if issubclass(V1GetClusterCapacityReservationResponse, dict):
|
|
101
|
+
for key, value in self.items():
|
|
102
|
+
result[key] = value
|
|
103
|
+
|
|
104
|
+
return result
|
|
105
|
+
|
|
106
|
+
def to_str(self) -> str:
|
|
107
|
+
"""Returns the string representation of the model"""
|
|
108
|
+
return pprint.pformat(self.to_dict())
|
|
109
|
+
|
|
110
|
+
def __repr__(self) -> str:
|
|
111
|
+
"""For `print` and `pprint`"""
|
|
112
|
+
return self.to_str()
|
|
113
|
+
|
|
114
|
+
def __eq__(self, other: 'V1GetClusterCapacityReservationResponse') -> bool:
|
|
115
|
+
"""Returns true if both objects are equal"""
|
|
116
|
+
if not isinstance(other, V1GetClusterCapacityReservationResponse):
|
|
117
|
+
return False
|
|
118
|
+
|
|
119
|
+
return self.__dict__ == other.__dict__
|
|
120
|
+
|
|
121
|
+
def __ne__(self, other: 'V1GetClusterCapacityReservationResponse') -> bool:
|
|
122
|
+
"""Returns true if both objects are not equal"""
|
|
123
|
+
return not self == other
|
|
@@ -43,6 +43,7 @@ class V1SlackNotifier(object):
|
|
|
43
43
|
swagger_types = {
|
|
44
44
|
'api_key': 'str',
|
|
45
45
|
'channel_id': 'str',
|
|
46
|
+
'notify_on_ready_for_maintenance': 'bool',
|
|
46
47
|
'type': 'V1SlackNotifierType',
|
|
47
48
|
'url': 'str'
|
|
48
49
|
}
|
|
@@ -50,14 +51,16 @@ class V1SlackNotifier(object):
|
|
|
50
51
|
attribute_map = {
|
|
51
52
|
'api_key': 'apiKey',
|
|
52
53
|
'channel_id': 'channelId',
|
|
54
|
+
'notify_on_ready_for_maintenance': 'notifyOnReadyForMaintenance',
|
|
53
55
|
'type': 'type',
|
|
54
56
|
'url': 'url'
|
|
55
57
|
}
|
|
56
58
|
|
|
57
|
-
def __init__(self, api_key: 'str' =None, channel_id: 'str' =None, type: 'V1SlackNotifierType' =None, url: 'str' =None): # noqa: E501
|
|
59
|
+
def __init__(self, api_key: 'str' =None, channel_id: 'str' =None, notify_on_ready_for_maintenance: 'bool' =None, type: 'V1SlackNotifierType' =None, url: 'str' =None): # noqa: E501
|
|
58
60
|
"""V1SlackNotifier - a model defined in Swagger""" # noqa: E501
|
|
59
61
|
self._api_key = None
|
|
60
62
|
self._channel_id = None
|
|
63
|
+
self._notify_on_ready_for_maintenance = None
|
|
61
64
|
self._type = None
|
|
62
65
|
self._url = None
|
|
63
66
|
self.discriminator = None
|
|
@@ -65,6 +68,8 @@ class V1SlackNotifier(object):
|
|
|
65
68
|
self.api_key = api_key
|
|
66
69
|
if channel_id is not None:
|
|
67
70
|
self.channel_id = channel_id
|
|
71
|
+
if notify_on_ready_for_maintenance is not None:
|
|
72
|
+
self.notify_on_ready_for_maintenance = notify_on_ready_for_maintenance
|
|
68
73
|
if type is not None:
|
|
69
74
|
self.type = type
|
|
70
75
|
if url is not None:
|
|
@@ -112,6 +117,27 @@ class V1SlackNotifier(object):
|
|
|
112
117
|
|
|
113
118
|
self._channel_id = channel_id
|
|
114
119
|
|
|
120
|
+
@property
|
|
121
|
+
def notify_on_ready_for_maintenance(self) -> 'bool':
|
|
122
|
+
"""Gets the notify_on_ready_for_maintenance of this V1SlackNotifier. # noqa: E501
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
:return: The notify_on_ready_for_maintenance of this V1SlackNotifier. # noqa: E501
|
|
126
|
+
:rtype: bool
|
|
127
|
+
"""
|
|
128
|
+
return self._notify_on_ready_for_maintenance
|
|
129
|
+
|
|
130
|
+
@notify_on_ready_for_maintenance.setter
|
|
131
|
+
def notify_on_ready_for_maintenance(self, notify_on_ready_for_maintenance: 'bool'):
|
|
132
|
+
"""Sets the notify_on_ready_for_maintenance of this V1SlackNotifier.
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
:param notify_on_ready_for_maintenance: The notify_on_ready_for_maintenance of this V1SlackNotifier. # noqa: E501
|
|
136
|
+
:type: bool
|
|
137
|
+
"""
|
|
138
|
+
|
|
139
|
+
self._notify_on_ready_for_maintenance = notify_on_ready_for_maintenance
|
|
140
|
+
|
|
115
141
|
@property
|
|
116
142
|
def type(self) -> 'V1SlackNotifierType':
|
|
117
143
|
"""Gets the type of this V1SlackNotifier. # noqa: E501
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
external/v1/auth_service.proto
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
|
|
7
|
+
|
|
8
|
+
OpenAPI spec version: version not set
|
|
9
|
+
|
|
10
|
+
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
11
|
+
|
|
12
|
+
NOTE
|
|
13
|
+
----
|
|
14
|
+
standard swagger-codegen-cli for this python client has been modified
|
|
15
|
+
by custom templates. The purpose of these templates is to include
|
|
16
|
+
typing information in the API and Model code. Please refer to the
|
|
17
|
+
main grid repository for more info
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
import pprint
|
|
21
|
+
import re # noqa: F401
|
|
22
|
+
|
|
23
|
+
from typing import TYPE_CHECKING
|
|
24
|
+
|
|
25
|
+
import six
|
|
26
|
+
|
|
27
|
+
if TYPE_CHECKING:
|
|
28
|
+
from datetime import datetime
|
|
29
|
+
from lightning_sdk.lightning_cloud.openapi.models import *
|
|
30
|
+
|
|
31
|
+
class V1UpdateContainerRegistryResponse(object):
|
|
32
|
+
"""NOTE: This class is auto generated by the swagger code generator program.
|
|
33
|
+
|
|
34
|
+
Do not edit the class manually.
|
|
35
|
+
"""
|
|
36
|
+
"""
|
|
37
|
+
Attributes:
|
|
38
|
+
swagger_types (dict): The key is attribute name
|
|
39
|
+
and the value is attribute type.
|
|
40
|
+
attribute_map (dict): The key is attribute name
|
|
41
|
+
and the value is json key in definition.
|
|
42
|
+
"""
|
|
43
|
+
swagger_types = {
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
attribute_map = {
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
def __init__(self): # noqa: E501
|
|
50
|
+
"""V1UpdateContainerRegistryResponse - a model defined in Swagger""" # noqa: E501
|
|
51
|
+
self.discriminator = None
|
|
52
|
+
|
|
53
|
+
def to_dict(self) -> dict:
|
|
54
|
+
"""Returns the model properties as a dict"""
|
|
55
|
+
result = {}
|
|
56
|
+
|
|
57
|
+
for attr, _ in six.iteritems(self.swagger_types):
|
|
58
|
+
value = getattr(self, attr)
|
|
59
|
+
if isinstance(value, list):
|
|
60
|
+
result[attr] = list(map(
|
|
61
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
|
62
|
+
value
|
|
63
|
+
))
|
|
64
|
+
elif hasattr(value, "to_dict"):
|
|
65
|
+
result[attr] = value.to_dict()
|
|
66
|
+
elif isinstance(value, dict):
|
|
67
|
+
result[attr] = dict(map(
|
|
68
|
+
lambda item: (item[0], item[1].to_dict())
|
|
69
|
+
if hasattr(item[1], "to_dict") else item,
|
|
70
|
+
value.items()
|
|
71
|
+
))
|
|
72
|
+
else:
|
|
73
|
+
result[attr] = value
|
|
74
|
+
if issubclass(V1UpdateContainerRegistryResponse, dict):
|
|
75
|
+
for key, value in self.items():
|
|
76
|
+
result[key] = value
|
|
77
|
+
|
|
78
|
+
return result
|
|
79
|
+
|
|
80
|
+
def to_str(self) -> str:
|
|
81
|
+
"""Returns the string representation of the model"""
|
|
82
|
+
return pprint.pformat(self.to_dict())
|
|
83
|
+
|
|
84
|
+
def __repr__(self) -> str:
|
|
85
|
+
"""For `print` and `pprint`"""
|
|
86
|
+
return self.to_str()
|
|
87
|
+
|
|
88
|
+
def __eq__(self, other: 'V1UpdateContainerRegistryResponse') -> bool:
|
|
89
|
+
"""Returns true if both objects are equal"""
|
|
90
|
+
if not isinstance(other, V1UpdateContainerRegistryResponse):
|
|
91
|
+
return False
|
|
92
|
+
|
|
93
|
+
return self.__dict__ == other.__dict__
|
|
94
|
+
|
|
95
|
+
def __ne__(self, other: 'V1UpdateContainerRegistryResponse') -> bool:
|
|
96
|
+
"""Returns true if both objects are not equal"""
|
|
97
|
+
return not self == other
|
|
@@ -80,7 +80,6 @@ class V1UserFeatures(object):
|
|
|
80
80
|
'f271': 'bool',
|
|
81
81
|
'f272': 'bool',
|
|
82
82
|
'f273': 'bool',
|
|
83
|
-
'f275': 'bool',
|
|
84
83
|
'f276': 'bool',
|
|
85
84
|
'f279': 'bool',
|
|
86
85
|
'f280': 'bool',
|
|
@@ -90,7 +89,6 @@ class V1UserFeatures(object):
|
|
|
90
89
|
'f287': 'bool',
|
|
91
90
|
'f288': 'bool',
|
|
92
91
|
'f289': 'bool',
|
|
93
|
-
'f290': 'bool',
|
|
94
92
|
'f292': 'bool',
|
|
95
93
|
'f293': 'bool',
|
|
96
94
|
'f294': 'bool',
|
|
@@ -175,7 +173,6 @@ class V1UserFeatures(object):
|
|
|
175
173
|
'f271': 'f271',
|
|
176
174
|
'f272': 'f272',
|
|
177
175
|
'f273': 'f273',
|
|
178
|
-
'f275': 'f275',
|
|
179
176
|
'f276': 'f276',
|
|
180
177
|
'f279': 'f279',
|
|
181
178
|
'f280': 'f280',
|
|
@@ -185,7 +182,6 @@ class V1UserFeatures(object):
|
|
|
185
182
|
'f287': 'f287',
|
|
186
183
|
'f288': 'f288',
|
|
187
184
|
'f289': 'f289',
|
|
188
|
-
'f290': 'f290',
|
|
189
185
|
'f292': 'f292',
|
|
190
186
|
'f293': 'f293',
|
|
191
187
|
'f294': 'f294',
|
|
@@ -230,7 +226,7 @@ class V1UserFeatures(object):
|
|
|
230
226
|
'weka': 'weka'
|
|
231
227
|
}
|
|
232
228
|
|
|
233
|
-
def __init__(self, affiliate_links: 'bool' =None, agents_v2: 'bool' =None, ai_hub_monetization: 'bool' =None, auto_fast_load: 'bool' =None, b2c_experience: 'bool' =None, byo_machine_type: 'bool' =None, cap_add: 'list[str]' =None, cap_drop: 'list[str]' =None, capacity_reservation_byoc: 'bool' =None, capacity_reservation_dry_run: 'bool' =None, chat_models: 'bool' =None, cloudspace_schedules: 'bool' =None, code_tab: 'bool' =None, collab_screen_sharing: 'bool' =None, control_center_monitoring: 'bool' =None, cost_attribution_settings: 'bool' =None, datasets: 'bool' =None, default_one_cluster: 'bool' =None, drive_v2: 'bool' =None, enterprise_compute_admin: 'bool' =None, f234: 'bool' =None, f236: 'bool' =None, f240: 'bool' =None, f241: 'bool' =None, f243: 'bool' =None, f245: 'bool' =None, f247: 'bool' =None, f250: 'bool' =None, f252: 'bool' =None, f253: 'bool' =None, f254: 'bool' =None, f258: 'bool' =None, f259: 'bool' =None, f266: 'bool' =None, f268: 'bool' =None, f270: 'bool' =None, f271: 'bool' =None, f272: 'bool' =None, f273: 'bool' =None,
|
|
229
|
+
def __init__(self, affiliate_links: 'bool' =None, agents_v2: 'bool' =None, ai_hub_monetization: 'bool' =None, auto_fast_load: 'bool' =None, b2c_experience: 'bool' =None, byo_machine_type: 'bool' =None, cap_add: 'list[str]' =None, cap_drop: 'list[str]' =None, capacity_reservation_byoc: 'bool' =None, capacity_reservation_dry_run: 'bool' =None, chat_models: 'bool' =None, cloudspace_schedules: 'bool' =None, code_tab: 'bool' =None, collab_screen_sharing: 'bool' =None, control_center_monitoring: 'bool' =None, cost_attribution_settings: 'bool' =None, datasets: 'bool' =None, default_one_cluster: 'bool' =None, drive_v2: 'bool' =None, enterprise_compute_admin: 'bool' =None, f234: 'bool' =None, f236: 'bool' =None, f240: 'bool' =None, f241: 'bool' =None, f243: 'bool' =None, f245: 'bool' =None, f247: 'bool' =None, f250: 'bool' =None, f252: 'bool' =None, f253: 'bool' =None, f254: 'bool' =None, f258: 'bool' =None, f259: 'bool' =None, f266: 'bool' =None, f268: 'bool' =None, f270: 'bool' =None, f271: 'bool' =None, f272: 'bool' =None, f273: 'bool' =None, f276: 'bool' =None, f279: 'bool' =None, f280: 'bool' =None, f281: 'bool' =None, f283: 'bool' =None, f285: 'bool' =None, f287: 'bool' =None, f288: 'bool' =None, f289: 'bool' =None, f292: 'bool' =None, f293: 'bool' =None, f294: 'bool' =None, f295: 'bool' =None, f296: 'bool' =None, f297: 'bool' =None, fair_share: 'bool' =None, featured_studios_admin: 'bool' =None, job_artifacts_v2: 'bool' =None, kubernetes_cluster_ui: 'bool' =None, kubernetes_clusters: 'bool' =None, landing_studios: 'bool' =None, marketplace: 'bool' =None, mmt_fault_tolerance: 'bool' =None, mmt_strategy_selector: 'bool' =None, multiple_studio_versions: 'bool' =None, nerf_fs_nonpaying: 'bool' =None, org_level_member_permissions: 'bool' =None, org_usage_limits: 'bool' =None, persistent_disk: 'bool' =None, plugin_distributed: 'bool' =None, plugin_inference: 'bool' =None, plugin_label_studio: 'bool' =None, plugin_langflow: 'bool' =None, plugin_python_profiler: 'bool' =None, plugin_sweeps: 'bool' =None, product_generator: 'bool' =None, product_license: 'bool' =None, project_selector: 'bool' =None, publish_pipelines: 'bool' =None, reserved_machines_tab: 'bool' =None, restartable_jobs: 'bool' =None, runnable_public_studio_page: 'bool' =None, security_docs: 'bool' =None, show_dev_admin: 'bool' =None, slurm: 'bool' =None, specialised_studios: 'bool' =None, storage_overuse_deletion: 'bool' =None, studio_config: 'bool' =None, studio_version_visibility: 'bool' =None, vultr: 'bool' =None, weka: 'bool' =None): # noqa: E501
|
|
234
230
|
"""V1UserFeatures - a model defined in Swagger""" # noqa: E501
|
|
235
231
|
self._affiliate_links = None
|
|
236
232
|
self._agents_v2 = None
|
|
@@ -271,7 +267,6 @@ class V1UserFeatures(object):
|
|
|
271
267
|
self._f271 = None
|
|
272
268
|
self._f272 = None
|
|
273
269
|
self._f273 = None
|
|
274
|
-
self._f275 = None
|
|
275
270
|
self._f276 = None
|
|
276
271
|
self._f279 = None
|
|
277
272
|
self._f280 = None
|
|
@@ -281,7 +276,6 @@ class V1UserFeatures(object):
|
|
|
281
276
|
self._f287 = None
|
|
282
277
|
self._f288 = None
|
|
283
278
|
self._f289 = None
|
|
284
|
-
self._f290 = None
|
|
285
279
|
self._f292 = None
|
|
286
280
|
self._f293 = None
|
|
287
281
|
self._f294 = None
|
|
@@ -403,8 +397,6 @@ class V1UserFeatures(object):
|
|
|
403
397
|
self.f272 = f272
|
|
404
398
|
if f273 is not None:
|
|
405
399
|
self.f273 = f273
|
|
406
|
-
if f275 is not None:
|
|
407
|
-
self.f275 = f275
|
|
408
400
|
if f276 is not None:
|
|
409
401
|
self.f276 = f276
|
|
410
402
|
if f279 is not None:
|
|
@@ -423,8 +415,6 @@ class V1UserFeatures(object):
|
|
|
423
415
|
self.f288 = f288
|
|
424
416
|
if f289 is not None:
|
|
425
417
|
self.f289 = f289
|
|
426
|
-
if f290 is not None:
|
|
427
|
-
self.f290 = f290
|
|
428
418
|
if f292 is not None:
|
|
429
419
|
self.f292 = f292
|
|
430
420
|
if f293 is not None:
|
|
@@ -1329,27 +1319,6 @@ class V1UserFeatures(object):
|
|
|
1329
1319
|
|
|
1330
1320
|
self._f273 = f273
|
|
1331
1321
|
|
|
1332
|
-
@property
|
|
1333
|
-
def f275(self) -> 'bool':
|
|
1334
|
-
"""Gets the f275 of this V1UserFeatures. # noqa: E501
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
:return: The f275 of this V1UserFeatures. # noqa: E501
|
|
1338
|
-
:rtype: bool
|
|
1339
|
-
"""
|
|
1340
|
-
return self._f275
|
|
1341
|
-
|
|
1342
|
-
@f275.setter
|
|
1343
|
-
def f275(self, f275: 'bool'):
|
|
1344
|
-
"""Sets the f275 of this V1UserFeatures.
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
:param f275: The f275 of this V1UserFeatures. # noqa: E501
|
|
1348
|
-
:type: bool
|
|
1349
|
-
"""
|
|
1350
|
-
|
|
1351
|
-
self._f275 = f275
|
|
1352
|
-
|
|
1353
1322
|
@property
|
|
1354
1323
|
def f276(self) -> 'bool':
|
|
1355
1324
|
"""Gets the f276 of this V1UserFeatures. # noqa: E501
|
|
@@ -1539,27 +1508,6 @@ class V1UserFeatures(object):
|
|
|
1539
1508
|
|
|
1540
1509
|
self._f289 = f289
|
|
1541
1510
|
|
|
1542
|
-
@property
|
|
1543
|
-
def f290(self) -> 'bool':
|
|
1544
|
-
"""Gets the f290 of this V1UserFeatures. # noqa: E501
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
:return: The f290 of this V1UserFeatures. # noqa: E501
|
|
1548
|
-
:rtype: bool
|
|
1549
|
-
"""
|
|
1550
|
-
return self._f290
|
|
1551
|
-
|
|
1552
|
-
@f290.setter
|
|
1553
|
-
def f290(self, f290: 'bool'):
|
|
1554
|
-
"""Sets the f290 of this V1UserFeatures.
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
:param f290: The f290 of this V1UserFeatures. # noqa: E501
|
|
1558
|
-
:type: bool
|
|
1559
|
-
"""
|
|
1560
|
-
|
|
1561
|
-
self._f290 = f290
|
|
1562
|
-
|
|
1563
1511
|
@property
|
|
1564
1512
|
def f292(self) -> 'bool':
|
|
1565
1513
|
"""Gets the f292 of this V1UserFeatures. # noqa: E501
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
docs/source/conf.py,sha256=r8yX20eC-4mHhMTd0SbQb5TlSWHhO6wnJ0VJ_FBFpag,13249
|
|
2
2
|
lightning_sdk/__init__.py,sha256=ym1mOWljHxiO4oijOrmtcjf-eIcwYJVFXkDvLduL4FA,1368
|
|
3
|
-
lightning_sdk/__version__.py,sha256=
|
|
3
|
+
lightning_sdk/__version__.py,sha256=IDoJTZImpeaGoIY6dwnKxNMAA8TFv8D4AXaBiMvWxpI,73
|
|
4
4
|
lightning_sdk/agents.py,sha256=Uqsdu4PgswhpeXZzDSbp3hu30MMOhSlCnp8D56MaS_c,1658
|
|
5
5
|
lightning_sdk/ai_hub.py,sha256=QzCfmX0h2CLn7r0DQyjWg6RnNw26Ey6akiP2Wffl9Ls,7006
|
|
6
6
|
lightning_sdk/base_studio.py,sha256=yMvZ1dDq_avW3iu98CLEo9W9UL54mx4C6FC43IKLWAE,4691
|
|
@@ -34,10 +34,10 @@ lightning_sdk/api/llm_api.py,sha256=8ouowlX-Ld0hRvueIS6fQqaEJLQMYskvhKV5-Z_A6gE,
|
|
|
34
34
|
lightning_sdk/api/mmt_api.py,sha256=rn-zYJR31QUCd1EgG2ApHWe3JzTIkg01fDvG8pvSI1k,10864
|
|
35
35
|
lightning_sdk/api/org_api.py,sha256=FqiEaoGTf4HxAImPgq03jExOjsB6HBOL31ishL37KVo,1111
|
|
36
36
|
lightning_sdk/api/pipeline_api.py,sha256=YXVVNYVRA3xcmjEHCt2AMwSjspxEeDt5d-kZy2YDvZg,4669
|
|
37
|
-
lightning_sdk/api/studio_api.py,sha256=
|
|
38
|
-
lightning_sdk/api/teamspace_api.py,sha256=
|
|
37
|
+
lightning_sdk/api/studio_api.py,sha256=N5t9fMDmSEWyXIk2PSOe1zucjajx10xrQNCRIIjFoIc,49676
|
|
38
|
+
lightning_sdk/api/teamspace_api.py,sha256=diZ1TEe9-Qha64zu3y_yMZixPFc-7MEEqevR2_LzzIQ,26901
|
|
39
39
|
lightning_sdk/api/user_api.py,sha256=2smSQS9xAm8fbfPgZSbYRCSdQbWplFefcA7KHz1ip1c,4971
|
|
40
|
-
lightning_sdk/api/utils.py,sha256=
|
|
40
|
+
lightning_sdk/api/utils.py,sha256=goMpeU53_CYEDtbKEhjyD82jwYhsQ7ZDu4zHcH9Id4o,32058
|
|
41
41
|
lightning_sdk/cli/__init__.py,sha256=lksw08t_ZIuHOH47LCIqSVHeZ8cUXI2aJWHYhyujYHM,32
|
|
42
42
|
lightning_sdk/cli/entrypoint.py,sha256=zAa0uLoihZ-H0SwEWfZ_oxMuhEoWkNLFy4gSwhb6D6Q,4251
|
|
43
43
|
lightning_sdk/cli/groups.py,sha256=o09-zmVO7lnQ7BjcvfXnGxw8OM3w3J-D3v48UNbkJNo,2423
|
|
@@ -48,7 +48,7 @@ lightning_sdk/cli/config/get.py,sha256=JXGRNVGxELS6Es2RESgStzTKnjg5rr-M6yOmx2ty9
|
|
|
48
48
|
lightning_sdk/cli/config/set.py,sha256=9p8q8nUWGWNcAcflQ3hS_tj-59jY7cmkzccuiZl92h4,3117
|
|
49
49
|
lightning_sdk/cli/config/show.py,sha256=rcarLUSAmbqyEBMFQ9PPHquURFbUCaxoMeBTG1DOpGs,167
|
|
50
50
|
lightning_sdk/cli/cp/__init__.py,sha256=v5HQBl6QECl5uC2T55k7z8plvYVaVsViCGkD1MugNVU,2538
|
|
51
|
-
lightning_sdk/cli/cp/teamspace_uploads.py,sha256=
|
|
51
|
+
lightning_sdk/cli/cp/teamspace_uploads.py,sha256=1A0poe2MS_0E_QWdKPwmAAqbg9z5CmWhYx-D9D10xU4,4155
|
|
52
52
|
lightning_sdk/cli/job/__init__.py,sha256=HxkswumuGqBnrSHjBElO2CXn9kvH_zVfQEQqd0nwkNU,145
|
|
53
53
|
lightning_sdk/cli/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
54
|
lightning_sdk/cli/legacy/ai_hub.py,sha256=8MxGQC7SZALAsIj0tZ9HMZCeVHESUcve0cNazRzIFbE,1812
|
|
@@ -99,7 +99,7 @@ lightning_sdk/cli/studio/switch.py,sha256=x6F1biDtfR0dk1t7X3NSkmfj5jkzGJe6-nvj3S
|
|
|
99
99
|
lightning_sdk/cli/utils/__init__.py,sha256=0gHdWY3bqrIyiFiEh_uSBuxWpOykCjqUc8fPEV0z3no,186
|
|
100
100
|
lightning_sdk/cli/utils/cloud_account_map.py,sha256=7oM7ns4ZJfkxxZhl-GMkxEkkinKbVkskx5dLcyEQiz4,414
|
|
101
101
|
lightning_sdk/cli/utils/coloring.py,sha256=YEb1LiYb6CekVfCRb83-npAmNgd-7c1LzXuNDo4GLSc,2415
|
|
102
|
-
lightning_sdk/cli/utils/filesystem.py,sha256=
|
|
102
|
+
lightning_sdk/cli/utils/filesystem.py,sha256=Ua0PmYIJDaCFtMDsnQVweUIGpCwDnpdn_6uCGKEMTbM,3653
|
|
103
103
|
lightning_sdk/cli/utils/get_base_studio.py,sha256=nYzyUTxVG86bzCOwh2QEC97kDkX7nP2ljXD4M1SJm2c,828
|
|
104
104
|
lightning_sdk/cli/utils/handle_machine_and_gpus_args.py,sha256=5tlBuDAnzpPiau7YQ2jcXB4lPggyManxh_i4oqLUxD4,2280
|
|
105
105
|
lightning_sdk/cli/utils/logging.py,sha256=Tiv7KtDN7t4-KPIDHahl-rY5uxsicP_cXbLaCUbICCA,4647
|
|
@@ -132,7 +132,7 @@ lightning_sdk/lightning_cloud/env.py,sha256=XZXpF4sD9jlB8DY0herTy_8XiUJuDVjxy5AP
|
|
|
132
132
|
lightning_sdk/lightning_cloud/login.py,sha256=7kV7N_48MTSO9eYlC0WfbpRgoA-9ID3RRfooKZpfNIQ,19475
|
|
133
133
|
lightning_sdk/lightning_cloud/rest_client.py,sha256=H2Iv6aZ2FE8elaCpTkuq8rt3sEmpxZEF-7yuLNGXnts,7012
|
|
134
134
|
lightning_sdk/lightning_cloud/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
|
-
lightning_sdk/lightning_cloud/openapi/__init__.py,sha256=
|
|
135
|
+
lightning_sdk/lightning_cloud/openapi/__init__.py,sha256=7rOe2pyOjqbeThzoo8iMblilXKBROtvtDbYHMmi8hGk,139875
|
|
136
136
|
lightning_sdk/lightning_cloud/openapi/api_client.py,sha256=pUTQMNcZmH4BhpnuAXuT7wnegaxaX26bzdEWjdoLeTo,25630
|
|
137
137
|
lightning_sdk/lightning_cloud/openapi/configuration.py,sha256=SkBPJ3WZ9SF1LxxWeGKa4UwbGRsk9p3-yL_Kn7l5CSM,7866
|
|
138
138
|
lightning_sdk/lightning_cloud/openapi/rest.py,sha256=ZPPr6ZkBp6LtuAsiUU7D8Pz8Dt9ECbEM_26Ov74tdpw,13322
|
|
@@ -146,8 +146,8 @@ lightning_sdk/lightning_cloud/openapi/api/blog_posts_service_api.py,sha256=Eaegp
|
|
|
146
146
|
lightning_sdk/lightning_cloud/openapi/api/cloud_space_environment_template_service_api.py,sha256=OHwcctL2XHbia155BGEA5w6ZrAK4XfR72oxBGwj6cUg,28794
|
|
147
147
|
lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py,sha256=mpSf3-kKBtglezO9E3BonHAlCaIQ5Qbyk9Is2WNlhko,467831
|
|
148
148
|
lightning_sdk/lightning_cloud/openapi/api/cloudy_service_api.py,sha256=gMh5xp_ElpZmYbRzLRM1W9TOdRlpzxMMVl96_Ak020A,13151
|
|
149
|
-
lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py,sha256=
|
|
150
|
-
lightning_sdk/lightning_cloud/openapi/api/container_registry_service_api.py,sha256=
|
|
149
|
+
lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py,sha256=wxG_qBJvF1ih816X7022C5H7eSfBiXs2CjmNr0ZvRf4,230547
|
|
150
|
+
lightning_sdk/lightning_cloud/openapi/api/container_registry_service_api.py,sha256=D1oH70uTAlJijv9kr_P3WczeUu01YvnKITJaYf8McDo,26200
|
|
151
151
|
lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py,sha256=IhQmKY-kjy26bJc8LIwfAMms4_wCyI8m6CJxT8cPAGU,61269
|
|
152
152
|
lightning_sdk/lightning_cloud/openapi/api/dataset_service_api.py,sha256=JwO-CZGSrSEKErELw4L7aSNYg-LWLTGhjpoH7QLfj_4,23616
|
|
153
153
|
lightning_sdk/lightning_cloud/openapi/api/deployment_templates_service_api.py,sha256=Pa6-rGxs2fB5-kIqqdyf3giQJ6dbK6H3UI_QxcAN-r4,32171
|
|
@@ -185,7 +185,7 @@ lightning_sdk/lightning_cloud/openapi/api/studio_jobs_service_api.py,sha256=zKaE
|
|
|
185
185
|
lightning_sdk/lightning_cloud/openapi/api/user_service_api.py,sha256=W5GQ346xra7X-84vWS90v1ST2NayPdAEh2fpDC5ys3o,68849
|
|
186
186
|
lightning_sdk/lightning_cloud/openapi/api/virtual_machine_service_api.py,sha256=mAcfunCy_iciFaVWyMjuYAvlVCs0D9kMU3yKmCCCB-Y,24218
|
|
187
187
|
lightning_sdk/lightning_cloud/openapi/api/volume_service_api.py,sha256=uEa7KA1kOH14bfcUQVRbv5PmGhROlDnuf9ayVpyYEjk,10408
|
|
188
|
-
lightning_sdk/lightning_cloud/openapi/models/__init__.py,sha256=
|
|
188
|
+
lightning_sdk/lightning_cloud/openapi/models/__init__.py,sha256=jymP7vRajXVKzJVZ8IKtcB2PaYZQJF8rOLZMNBxfKkw,134813
|
|
189
189
|
lightning_sdk/lightning_cloud/openapi/models/agent_service_agent_complete_part_body.py,sha256=s62A2yWnfiW57SODogVlz4QH2fyvvNtBsLT_Ko4mkNw,3088
|
|
190
190
|
lightning_sdk/lightning_cloud/openapi/models/agent_service_agent_upload_part_body.py,sha256=G4NFLxYvfgl4qG7V2FSSKpyRQDOUejPV4diLLh8Qp5s,3807
|
|
191
191
|
lightning_sdk/lightning_cloud/openapi/models/agent_service_create_agent_multipart_upload_body.py,sha256=FcWPrspQYox62lBnAAya3KwNcjy3h03vady0rCM-SuM,4682
|
|
@@ -253,6 +253,7 @@ lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_machine_body
|
|
|
253
253
|
lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_org_cluster_capacity_reservation_body.py,sha256=CvRjFsIcZHcazaM8BWQR7qfGtq3uOwFKy8fM3P5MSd0,15593
|
|
254
254
|
lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_project_cluster_body.py,sha256=wv5mbzDvXPHo2iXSPg-bcblO91fCLEvHQ0snDfKpUds,4586
|
|
255
255
|
lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_server_alert_body.py,sha256=w5XlAS5W_1AgTXc1RAcjrDct-TH_eoiUvRK62iYebTQ,6312
|
|
256
|
+
lightning_sdk/lightning_cloud/openapi/models/cluster_service_get_cluster_capacity_reservation_body.py,sha256=RhQZgXgs2fiE93vJDGr7ce7-h8KXrJdVyKRN2Gk8z7o,3172
|
|
256
257
|
lightning_sdk/lightning_cloud/openapi/models/cluster_service_interrupt_server_body.py,sha256=Cwg5eSBUNaARg93nflOLuH_Dvo4pOMvBnbNZakrBd_k,3088
|
|
257
258
|
lightning_sdk/lightning_cloud/openapi/models/cluster_service_purchase_capacity_block_body.py,sha256=POJSYvrHJrp1wOF6YVLY64FviNsHPeJOrJtziLw7Rq4,8519
|
|
258
259
|
lightning_sdk/lightning_cloud/openapi/models/cluster_service_report_machine_system_metrics_body.py,sha256=9WOyIuAOXy24I1p3U9oQvaXI5Todx8dGi7OQI38ehCI,4208
|
|
@@ -759,6 +760,7 @@ lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_required_balance
|
|
|
759
760
|
lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_size_response.py,sha256=oTyPx69HOhPsyKaoTcTJfKMFwZahlZtRZOPNqoa0g3o,7455
|
|
760
761
|
lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_transfer_estimate_response.py,sha256=pQgKIaUtiwSNgNEDZeUEq7fe5REryeWRGUhnhasZM5A,5243
|
|
761
762
|
lightning_sdk/lightning_cloud/openapi/models/v1_get_cluster_accelerator_demand_response.py,sha256=xxRf6ry2wQM3OsUhfn9wUTUjnvJu0Srv9Dn9Mlezafo,3950
|
|
763
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_get_cluster_capacity_reservation_response.py,sha256=yUz5J5aJoWyfPGXGz0kHnD98YAtxe3zGYxvXD2noZHs,4300
|
|
762
764
|
lightning_sdk/lightning_cloud/openapi/models/v1_get_cluster_credentials_response.py,sha256=5ryHCeO6hkoK-5THe_dGuBk0EnHSD21u-5AzjGzvv5A,3851
|
|
763
765
|
lightning_sdk/lightning_cloud/openapi/models/v1_get_cluster_health_response.py,sha256=iKFcdicF7ipDej3YB2rQuiTgQ-Xc6yqcEzxg9siNuxE,4850
|
|
764
766
|
lightning_sdk/lightning_cloud/openapi/models/v1_get_deployment_routing_telemetry_aggregated_response.py,sha256=aKIn0uwmEPINgrrWXdXlYMCV5a8kqW8MWCLg4aHLCG8,4079
|
|
@@ -1195,7 +1197,7 @@ lightning_sdk/lightning_cloud/openapi/models/v1_setup_data_connection_response.p
|
|
|
1195
1197
|
lightning_sdk/lightning_cloud/openapi/models/v1_shared_filesystem.py,sha256=IJW1NFl23_IuBbHIAsb26Djc8fFEi5IfsprphUGg2Sw,9452
|
|
1196
1198
|
lightning_sdk/lightning_cloud/openapi/models/v1_should_start_syncing_response.py,sha256=VMFOOarb05lU61dO_rxe6MmakCAHD998YwUKwyRxELQ,3906
|
|
1197
1199
|
lightning_sdk/lightning_cloud/openapi/models/v1_signed_url.py,sha256=Nb6sQMTv9YEcmsU55ATGwHP48bIPeGq1PxwInN0I5dI,4267
|
|
1198
|
-
lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py,sha256=
|
|
1200
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py,sha256=sevoSbrd-P2YbJC_SHG7JfrA1X2_u0rCR9UK7UeqQKI,6839
|
|
1199
1201
|
lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier_type.py,sha256=jDrut6IfA14M_qEJp0dAv6CtTa91HGk_v1iB-BG9GFk,3215
|
|
1200
1202
|
lightning_sdk/lightning_cloud/openapi/models/v1_sleep_server_response.py,sha256=onEkx3JTz_ZoArxvudZ-kEeprVShuz34zNTnOAAKuIk,3016
|
|
1201
1203
|
lightning_sdk/lightning_cloud/openapi/models/v1_slurm_cluster_user.py,sha256=E2T72bpygdvdrO4hnCbqY5eUxyxZ32hG_XbG366BghE,6538
|
|
@@ -1251,6 +1253,7 @@ lightning_sdk/lightning_cloud/openapi/models/v1_update_cloud_space_visibility_re
|
|
|
1251
1253
|
lightning_sdk/lightning_cloud/openapi/models/v1_update_cluster_accelerators_request.py,sha256=Hz8tGrb6oRzTbtf3AC9QL7B2TlqSEPLzHqDfhosCiB0,4867
|
|
1252
1254
|
lightning_sdk/lightning_cloud/openapi/models/v1_update_cluster_accelerators_response.py,sha256=Eo8HbgCNJkuIG5Ccyl7wPuOk72FhAhkaPGuAltr4tSw,3100
|
|
1253
1255
|
lightning_sdk/lightning_cloud/openapi/models/v1_update_cluster_availability_request.py,sha256=E8htNmxp_YBjhqK3HLV42a3tdu5F07-Iv0wtEFTPRjg,6603
|
|
1256
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_update_container_registry_response.py,sha256=jWpnJOlM-Hqv1gms4Cfda5VCXB52LynuNVnVppypqKU,3088
|
|
1254
1257
|
lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_like_response.py,sha256=Y35TnUACI047cdpIcz-ow7vgdsMRkPTxjnGI4JmrxCU,4561
|
|
1255
1258
|
lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_message_content_response.py,sha256=1PgB6MqG9woYYrguOZogp8z6UqeTqDHklpld8yPvuaw,3957
|
|
1256
1259
|
lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_message_like_response.py,sha256=q8SU00NIRsHMnvGEW0T8DEyexiEdiVzY-tyuy5ElZ4s,4918
|
|
@@ -1287,7 +1290,7 @@ lightning_sdk/lightning_cloud/openapi/models/v1_upstream_open_ai.py,sha256=jt1qQ
|
|
|
1287
1290
|
lightning_sdk/lightning_cloud/openapi/models/v1_usage.py,sha256=ozMzoGD9mfZGYy4J5j50Dps19Y6o8cn-aYW_oRMZMy8,16865
|
|
1288
1291
|
lightning_sdk/lightning_cloud/openapi/models/v1_usage_details.py,sha256=U7qC698Xj5tb3D93ZskG6sDf3lTXE13UTlGeDTvtRU4,14062
|
|
1289
1292
|
lightning_sdk/lightning_cloud/openapi/models/v1_usage_report.py,sha256=g75WXNnRZKOpic552CkqaJBKBwNrfBHlTtljCxaYBnI,9176
|
|
1290
|
-
lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py,sha256=
|
|
1293
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py,sha256=boxZvL8OlRHJsgzYsELTVjej33uUjiCcWhflIkq_fcc,72462
|
|
1291
1294
|
lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py,sha256=vJJr0q5zkRKpt2Myn0Zl3H8xmNxeZ5tDHnOW6xx7GNo,14172
|
|
1292
1295
|
lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_flow_compute_config.py,sha256=doeY2SKGKoVrMPN5It6BEKs_77NUPsrjffnG2FrihD0,5562
|
|
1293
1296
|
lightning_sdk/lightning_cloud/openapi/models/v1_user_slurm_job_action_response.py,sha256=BdNzXH8Vsf5PHjl9Rd-TVkpAgx1YC9rf8LD0js-ba20,3058
|
|
@@ -1352,9 +1355,9 @@ lightning_sdk/utils/logging.py,sha256=yntvShiZArBy9aG3JvQF0Dfq3nLmuP70x1kD7nYoQB
|
|
|
1352
1355
|
lightning_sdk/utils/names.py,sha256=1EuXbIh7wldkDp1FG10oz9vIOyWrpGWeFFVy-DQBgzA,18162
|
|
1353
1356
|
lightning_sdk/utils/progress.py,sha256=bLWw39fzq29PMWoFXaPIVfoS3Ug245950oWOFJ2ZaiU,12596
|
|
1354
1357
|
lightning_sdk/utils/resolve.py,sha256=dGn9TxCJqlcv1PK0vjncZq-ACvgbAF4JD61GXNrX3bg,10876
|
|
1355
|
-
lightning_sdk-2026.1.
|
|
1356
|
-
lightning_sdk-2026.1.
|
|
1357
|
-
lightning_sdk-2026.1.
|
|
1358
|
-
lightning_sdk-2026.1.
|
|
1359
|
-
lightning_sdk-2026.1.
|
|
1360
|
-
lightning_sdk-2026.1.
|
|
1358
|
+
lightning_sdk-2026.1.30.dist-info/LICENSE,sha256=uFIuZwj5z-4TeF2UuacPZ1o17HkvKObT8fY50qN84sg,1064
|
|
1359
|
+
lightning_sdk-2026.1.30.dist-info/METADATA,sha256=Tw7pFyL867jGkvCwjetyLfxGMGQONKRKQrqerP3iPWY,4064
|
|
1360
|
+
lightning_sdk-2026.1.30.dist-info/WHEEL,sha256=WnJ8fYhv8N4SYVK2lLYNI6N0kVATA7b0piVUNvqIIJE,91
|
|
1361
|
+
lightning_sdk-2026.1.30.dist-info/entry_points.txt,sha256=OoZa4Fc8NMs6GSN0cdA1J8e6couzAcL82CbM1yo4f_M,122
|
|
1362
|
+
lightning_sdk-2026.1.30.dist-info/top_level.txt,sha256=ps8doKILFXmN7F1mHncShmnQoTxKBRPIcchC8TpoBw4,19
|
|
1363
|
+
lightning_sdk-2026.1.30.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|