lightning-sdk 0.2.5__py3-none-any.whl → 0.2.6__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.
Files changed (40) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/cli/serve.py +29 -9
  3. lightning_sdk/lightning_cloud/openapi/__init__.py +8 -0
  4. lightning_sdk/lightning_cloud/openapi/api/cloud_space_environment_template_service_api.py +9 -9
  5. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +105 -0
  6. lightning_sdk/lightning_cloud/openapi/api/lit_registry_service_api.py +15 -3
  7. lightning_sdk/lightning_cloud/openapi/models/__init__.py +8 -0
  8. lightning_sdk/lightning_cloud/openapi/models/environmenttemplates_id_body.py +27 -1
  9. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +27 -1
  10. lightning_sdk/lightning_cloud/openapi/models/externalv1_cluster.py +27 -1
  11. lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +27 -1
  12. lightning_sdk/lightning_cloud/openapi/models/server_id_alerts_body.py +175 -0
  13. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template.py +27 -1
  14. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +123 -0
  15. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +27 -1
  16. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +131 -1
  17. lightning_sdk/lightning_cloud/openapi/models/v1_create_cloud_space_environment_template_request.py +27 -1
  18. lightning_sdk/lightning_cloud/openapi/models/v1_create_server_alert_response.py +97 -0
  19. lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +27 -1
  20. lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +55 -3
  21. lightning_sdk/lightning_cloud/openapi/models/v1_lambda_labs_direct_v1.py +1 -29
  22. lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_registry_repository_image_artifact_versions_response.py +27 -1
  23. lightning_sdk/lightning_cloud/openapi/models/v1_metadata.py +27 -1
  24. lightning_sdk/lightning_cloud/openapi/models/v1_reservation_details.py +201 -0
  25. lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +1 -0
  26. lightning_sdk/lightning_cloud/openapi/models/v1_server_alert.py +175 -0
  27. lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_severity.py +103 -0
  28. lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_type.py +105 -0
  29. lightning_sdk/lightning_cloud/openapi/models/v1_subnet_spec.py +149 -0
  30. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +79 -79
  31. lightning_sdk/lightning_cloud/openapi/models/v1_voltage_park_direct_v1.py +29 -29
  32. lightning_sdk/lightning_cloud/openapi/models/v1_vultr_direct_v1.py +1 -27
  33. lightning_sdk/lightning_cloud/rest_client.py +44 -42
  34. lightning_sdk/serve.py +5 -3
  35. {lightning_sdk-0.2.5.dist-info → lightning_sdk-0.2.6.dist-info}/METADATA +1 -1
  36. {lightning_sdk-0.2.5.dist-info → lightning_sdk-0.2.6.dist-info}/RECORD +40 -32
  37. {lightning_sdk-0.2.5.dist-info → lightning_sdk-0.2.6.dist-info}/LICENSE +0 -0
  38. {lightning_sdk-0.2.5.dist-info → lightning_sdk-0.2.6.dist-info}/WHEEL +0 -0
  39. {lightning_sdk-0.2.5.dist-info → lightning_sdk-0.2.6.dist-info}/entry_points.txt +0 -0
  40. {lightning_sdk-0.2.5.dist-info → lightning_sdk-0.2.6.dist-info}/top_level.txt +0 -0
lightning_sdk/__init__.py CHANGED
@@ -31,6 +31,6 @@ __all__ = [
31
31
  "User",
32
32
  ]
33
33
 
34
- __version__ = "0.2.5"
34
+ __version__ = "0.2.6"
35
35
  _check_version_and_prompt_upgrade(__version__)
36
36
  _set_tqdm_envvars_noninteractive()
@@ -1,5 +1,6 @@
1
1
  import os
2
2
  import subprocess
3
+ from datetime import datetime
3
4
  from pathlib import Path
4
5
  from typing import Optional, Union
5
6
 
@@ -7,11 +8,11 @@ import click
7
8
  from rich.console import Console
8
9
  from rich.progress import Progress, SpinnerColumn, TextColumn, TimeElapsedColumn
9
10
  from rich.prompt import Confirm
11
+ from rich.syntax import Syntax
10
12
 
11
13
  from lightning_sdk import Machine, Teamspace
12
14
  from lightning_sdk.api.deployment_api import DeploymentApi
13
15
  from lightning_sdk.api.lit_container_api import LitContainerApi
14
- from lightning_sdk.cli.exceptions import StudioCliError
15
16
  from lightning_sdk.cli.teamspace_menu import _TeamspacesMenu
16
17
  from lightning_sdk.serve import _LitServeDeployer
17
18
 
@@ -109,7 +110,7 @@ def api(
109
110
  script_path: str,
110
111
  easy: bool,
111
112
  cloud: bool,
112
- name: str,
113
+ name: Optional[str],
113
114
  non_interactive: bool,
114
115
  machine: str,
115
116
  interruptible: bool,
@@ -137,6 +138,7 @@ def api(
137
138
  user=user,
138
139
  cloud_account=cloud_account,
139
140
  port=port,
141
+ replicas=replicas,
140
142
  min_replica=min_replica,
141
143
  max_replica=max_replica,
142
144
  include_credentials=not no_credentials,
@@ -172,6 +174,10 @@ def api_impl(
172
174
 
173
175
  _LitServeDeployer.generate_client() if easy else None
174
176
 
177
+ if not repository:
178
+ timestr = datetime.now().strftime("%b-%d-%H_%M")
179
+ repository = f"litserve-{timestr}".lower()
180
+
175
181
  if cloud:
176
182
  repository = repository or "litserve-model"
177
183
  machine = Machine.from_str(machine)
@@ -223,12 +229,30 @@ def _handle_cloud(
223
229
  replicas: Optional[int] = 1,
224
230
  include_credentials: Optional[bool] = True,
225
231
  ) -> None:
232
+ deployment_name = os.path.basename(repository)
233
+ tag = tag if tag else "latest"
226
234
  if teamspace is None:
227
235
  menu = _TeamspacesMenu()
228
236
  resolved_teamspace = menu._resolve_teamspace(teamspace)
229
237
  else:
230
238
  resolved_teamspace = Teamspace(name=teamspace, org=org, user=user)
231
239
 
240
+ if DeploymentApi().get_deployment_by_name(deployment_name, resolved_teamspace.id):
241
+ syntax = Syntax(
242
+ "from lightning_sdk import Deployment\n\n"
243
+ f"deployment = Deployment('{deployment_name}', teamspace={resolved_teamspace.name})\n"
244
+ "deployment.update(...)",
245
+ "python",
246
+ line_numbers=True,
247
+ )
248
+
249
+ console.print(
250
+ f"\nDeployment with name [b]{deployment_name}[/b] already running. "
251
+ "To update the deployment, use the Deployment API:\n",
252
+ syntax,
253
+ )
254
+ return
255
+
232
256
  port = port or 8000
233
257
  ls_deployer = _LitServeDeployer()
234
258
  path = ls_deployer.dockerize_api(script_path, port=port, gpu=not machine.is_cpu(), tag=tag, print_success=False)
@@ -242,14 +266,10 @@ def _handle_cloud(
242
266
  console.print("Please fix the Dockerfile and try again.", style="red")
243
267
  return
244
268
 
245
- tag = tag if tag else "latest"
246
-
247
- lit_cr = LitContainerApi()
248
- deployment_name = os.path.basename(repository)
249
-
250
269
  ls_deployer.authenticate()
251
- if DeploymentApi().get_deployment_by_name(deployment_name, resolved_teamspace.id):
252
- raise StudioCliError(f"Deployment {deployment_name} already exists. Please choose a different name.") from None
270
+ # list containers to create the project if it doesn't exist
271
+ lit_cr = LitContainerApi()
272
+ lit_cr.list_containers(resolved_teamspace.id)
253
273
 
254
274
  with Progress(
255
275
  SpinnerColumn(),
@@ -196,6 +196,7 @@ from lightning_sdk.lightning_cloud.openapi.models.rpc_status import RpcStatus
196
196
  from lightning_sdk.lightning_cloud.openapi.models.schedules_id_body import SchedulesIdBody
197
197
  from lightning_sdk.lightning_cloud.openapi.models.secrets_id_body import SecretsIdBody
198
198
  from lightning_sdk.lightning_cloud.openapi.models.secrets_id_body1 import SecretsIdBody1
199
+ from lightning_sdk.lightning_cloud.openapi.models.server_id_alerts_body import ServerIdAlertsBody
199
200
  from lightning_sdk.lightning_cloud.openapi.models.servers_server_id_body import ServersServerIdBody
200
201
  from lightning_sdk.lightning_cloud.openapi.models.service_artifact_artifact_kind import ServiceArtifactArtifactKind
201
202
  from lightning_sdk.lightning_cloud.openapi.models.service_health_service_status import ServiceHealthServiceStatus
@@ -273,6 +274,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_code_version im
273
274
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_code_version_status import V1CloudSpaceCodeVersionStatus
274
275
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_engagement_response import V1CloudSpaceEngagementResponse
275
276
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_environment_template import V1CloudSpaceEnvironmentTemplate
277
+ from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_environment_template_config import V1CloudSpaceEnvironmentTemplateConfig
276
278
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_instance_collab_status import V1CloudSpaceInstanceCollabStatus
277
279
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_instance_config import V1CloudSpaceInstanceConfig
278
280
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_instance_startup_status import V1CloudSpaceInstanceStartupStatus
@@ -346,6 +348,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_create_organization_request
346
348
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_pipeline_template_request import V1CreatePipelineTemplateRequest
347
349
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_project_request import V1CreateProjectRequest
348
350
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_ssh_public_key_request import V1CreateSSHPublicKeyRequest
351
+ from lightning_sdk.lightning_cloud.openapi.models.v1_create_server_alert_response import V1CreateServerAlertResponse
349
352
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_shared_metrics_stream_request import V1CreateSharedMetricsStreamRequest
350
353
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_shared_metrics_stream_response import V1CreateSharedMetricsStreamResponse
351
354
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_snowflake_connection_response import V1CreateSnowflakeConnectionResponse
@@ -770,6 +773,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_report_restart_timings_resp
770
773
  from lightning_sdk.lightning_cloud.openapi.models.v1_request_cluster_access_request import V1RequestClusterAccessRequest
771
774
  from lightning_sdk.lightning_cloud.openapi.models.v1_request_cluster_access_response import V1RequestClusterAccessResponse
772
775
  from lightning_sdk.lightning_cloud.openapi.models.v1_request_verification_code_response import V1RequestVerificationCodeResponse
776
+ from lightning_sdk.lightning_cloud.openapi.models.v1_reservation_details import V1ReservationDetails
773
777
  from lightning_sdk.lightning_cloud.openapi.models.v1_resource_tag import V1ResourceTag
774
778
  from lightning_sdk.lightning_cloud.openapi.models.v1_resource_visibility import V1ResourceVisibility
775
779
  from lightning_sdk.lightning_cloud.openapi.models.v1_resources import V1Resources
@@ -797,6 +801,9 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_search_users_response impor
797
801
  from lightning_sdk.lightning_cloud.openapi.models.v1_secret import V1Secret
798
802
  from lightning_sdk.lightning_cloud.openapi.models.v1_secret_type import V1SecretType
799
803
  from lightning_sdk.lightning_cloud.openapi.models.v1_select import V1Select
804
+ from lightning_sdk.lightning_cloud.openapi.models.v1_server_alert import V1ServerAlert
805
+ from lightning_sdk.lightning_cloud.openapi.models.v1_server_alert_severity import V1ServerAlertSeverity
806
+ from lightning_sdk.lightning_cloud.openapi.models.v1_server_alert_type import V1ServerAlertType
800
807
  from lightning_sdk.lightning_cloud.openapi.models.v1_server_check_in_response import V1ServerCheckInResponse
801
808
  from lightning_sdk.lightning_cloud.openapi.models.v1_service_artifact import V1ServiceArtifact
802
809
  from lightning_sdk.lightning_cloud.openapi.models.v1_service_execution import V1ServiceExecution
@@ -821,6 +828,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_storage_asset_type import V
821
828
  from lightning_sdk.lightning_cloud.openapi.models.v1_storage_system_metrics import V1StorageSystemMetrics
822
829
  from lightning_sdk.lightning_cloud.openapi.models.v1_studio_job import V1StudioJob
823
830
  from lightning_sdk.lightning_cloud.openapi.models.v1_studio_job_app import V1StudioJobApp
831
+ from lightning_sdk.lightning_cloud.openapi.models.v1_subnet_spec import V1SubnetSpec
824
832
  from lightning_sdk.lightning_cloud.openapi.models.v1_switch_cloud_space_instance_response import V1SwitchCloudSpaceInstanceResponse
825
833
  from lightning_sdk.lightning_cloud.openapi.models.v1_system_info import V1SystemInfo
826
834
  from lightning_sdk.lightning_cloud.openapi.models.v1_system_metrics import V1SystemMetrics
@@ -334,12 +334,12 @@ class CloudSpaceEnvironmentTemplateServiceApi(object):
334
334
  _request_timeout=params.get('_request_timeout'),
335
335
  collection_formats=collection_formats)
336
336
 
337
- def cloud_space_environment_template_service_list_get_cloud_space_environment_templates(self, **kwargs) -> 'V1ListCloudSpaceEnvironmentTemplatesResponse': # noqa: E501
338
- """cloud_space_environment_template_service_list_get_cloud_space_environment_templates # noqa: E501
337
+ def cloud_space_environment_template_service_list_cloud_space_environment_templates(self, **kwargs) -> 'V1ListCloudSpaceEnvironmentTemplatesResponse': # noqa: E501
338
+ """cloud_space_environment_template_service_list_cloud_space_environment_templates # noqa: E501
339
339
 
340
340
  This method makes a synchronous HTTP request by default. To make an
341
341
  asynchronous HTTP request, please pass async_req=True
342
- >>> thread = api.cloud_space_environment_template_service_list_get_cloud_space_environment_templates(async_req=True)
342
+ >>> thread = api.cloud_space_environment_template_service_list_cloud_space_environment_templates(async_req=True)
343
343
  >>> result = thread.get()
344
344
 
345
345
  :param async_req bool
@@ -352,17 +352,17 @@ class CloudSpaceEnvironmentTemplateServiceApi(object):
352
352
  """
353
353
  kwargs['_return_http_data_only'] = True
354
354
  if kwargs.get('async_req'):
355
- return self.cloud_space_environment_template_service_list_get_cloud_space_environment_templates_with_http_info(**kwargs) # noqa: E501
355
+ return self.cloud_space_environment_template_service_list_cloud_space_environment_templates_with_http_info(**kwargs) # noqa: E501
356
356
  else:
357
- (data) = self.cloud_space_environment_template_service_list_get_cloud_space_environment_templates_with_http_info(**kwargs) # noqa: E501
357
+ (data) = self.cloud_space_environment_template_service_list_cloud_space_environment_templates_with_http_info(**kwargs) # noqa: E501
358
358
  return data
359
359
 
360
- def cloud_space_environment_template_service_list_get_cloud_space_environment_templates_with_http_info(self, **kwargs) -> 'V1ListCloudSpaceEnvironmentTemplatesResponse': # noqa: E501
361
- """cloud_space_environment_template_service_list_get_cloud_space_environment_templates # noqa: E501
360
+ def cloud_space_environment_template_service_list_cloud_space_environment_templates_with_http_info(self, **kwargs) -> 'V1ListCloudSpaceEnvironmentTemplatesResponse': # noqa: E501
361
+ """cloud_space_environment_template_service_list_cloud_space_environment_templates # noqa: E501
362
362
 
363
363
  This method makes a synchronous HTTP request by default. To make an
364
364
  asynchronous HTTP request, please pass async_req=True
365
- >>> thread = api.cloud_space_environment_template_service_list_get_cloud_space_environment_templates_with_http_info(async_req=True)
365
+ >>> thread = api.cloud_space_environment_template_service_list_cloud_space_environment_templates_with_http_info(async_req=True)
366
366
  >>> result = thread.get()
367
367
 
368
368
  :param async_req bool
@@ -385,7 +385,7 @@ class CloudSpaceEnvironmentTemplateServiceApi(object):
385
385
  if key not in all_params:
386
386
  raise TypeError(
387
387
  "Got an unexpected keyword argument '%s'"
388
- " to method cloud_space_environment_template_service_list_get_cloud_space_environment_templates" % key
388
+ " to method cloud_space_environment_template_service_list_cloud_space_environment_templates" % key
389
389
  )
390
390
  params[key] = val
391
391
  del params['kwargs']
@@ -665,6 +665,111 @@ class ClusterServiceApi(object):
665
665
  _request_timeout=params.get('_request_timeout'),
666
666
  collection_formats=collection_formats)
667
667
 
668
+ def cluster_service_create_server_alert(self, body: 'ServerIdAlertsBody', server_id: 'str', **kwargs) -> 'V1CreateServerAlertResponse': # noqa: E501
669
+ """cluster_service_create_server_alert # noqa: E501
670
+
671
+ This method makes a synchronous HTTP request by default. To make an
672
+ asynchronous HTTP request, please pass async_req=True
673
+ >>> thread = api.cluster_service_create_server_alert(body, server_id, async_req=True)
674
+ >>> result = thread.get()
675
+
676
+ :param async_req bool
677
+ :param ServerIdAlertsBody body: (required)
678
+ :param str server_id: (required)
679
+ :return: V1CreateServerAlertResponse
680
+ If the method is called asynchronously,
681
+ returns the request thread.
682
+ """
683
+ kwargs['_return_http_data_only'] = True
684
+ if kwargs.get('async_req'):
685
+ return self.cluster_service_create_server_alert_with_http_info(body, server_id, **kwargs) # noqa: E501
686
+ else:
687
+ (data) = self.cluster_service_create_server_alert_with_http_info(body, server_id, **kwargs) # noqa: E501
688
+ return data
689
+
690
+ def cluster_service_create_server_alert_with_http_info(self, body: 'ServerIdAlertsBody', server_id: 'str', **kwargs) -> 'V1CreateServerAlertResponse': # noqa: E501
691
+ """cluster_service_create_server_alert # noqa: E501
692
+
693
+ This method makes a synchronous HTTP request by default. To make an
694
+ asynchronous HTTP request, please pass async_req=True
695
+ >>> thread = api.cluster_service_create_server_alert_with_http_info(body, server_id, async_req=True)
696
+ >>> result = thread.get()
697
+
698
+ :param async_req bool
699
+ :param ServerIdAlertsBody body: (required)
700
+ :param str server_id: (required)
701
+ :return: V1CreateServerAlertResponse
702
+ If the method is called asynchronously,
703
+ returns the request thread.
704
+ """
705
+
706
+ all_params = ['body', 'server_id'] # noqa: E501
707
+ all_params.append('async_req')
708
+ all_params.append('_return_http_data_only')
709
+ all_params.append('_preload_content')
710
+ all_params.append('_request_timeout')
711
+
712
+ params = locals()
713
+ for key, val in six.iteritems(params['kwargs']):
714
+ if key not in all_params:
715
+ raise TypeError(
716
+ "Got an unexpected keyword argument '%s'"
717
+ " to method cluster_service_create_server_alert" % key
718
+ )
719
+ params[key] = val
720
+ del params['kwargs']
721
+ # verify the required parameter 'body' is set
722
+ if ('body' not in params or
723
+ params['body'] is None):
724
+ raise ValueError("Missing the required parameter `body` when calling `cluster_service_create_server_alert`") # noqa: E501
725
+ # verify the required parameter 'server_id' is set
726
+ if ('server_id' not in params or
727
+ params['server_id'] is None):
728
+ raise ValueError("Missing the required parameter `server_id` when calling `cluster_service_create_server_alert`") # noqa: E501
729
+
730
+ collection_formats = {}
731
+
732
+ path_params = {}
733
+ if 'server_id' in params:
734
+ path_params['serverId'] = params['server_id'] # noqa: E501
735
+
736
+ query_params = []
737
+
738
+ header_params = {}
739
+
740
+ form_params = []
741
+ local_var_files = {}
742
+
743
+ body_params = None
744
+ if 'body' in params:
745
+ body_params = params['body']
746
+ # HTTP header `Accept`
747
+ header_params['Accept'] = self.api_client.select_header_accept(
748
+ ['application/json']) # noqa: E501
749
+
750
+ # HTTP header `Content-Type`
751
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
752
+ ['application/json']) # noqa: E501
753
+
754
+ # Authentication setting
755
+ auth_settings = [] # noqa: E501
756
+
757
+ return self.api_client.call_api(
758
+ '/v1/core/servers/{serverId}/alerts', 'POST',
759
+ path_params,
760
+ query_params,
761
+ header_params,
762
+ body=body_params,
763
+ post_params=form_params,
764
+ files=local_var_files,
765
+ response_type='V1CreateServerAlertResponse', # noqa: E501
766
+ auth_settings=auth_settings,
767
+ async_req=params.get('async_req'),
768
+ _return_http_data_only=params.get('_return_http_data_only'),
769
+ _preload_content=params.get('_preload_content', True),
770
+ _request_timeout=params.get('_request_timeout'),
771
+ collection_formats=collection_formats)
772
+
668
773
  def cluster_service_delete_cluster(self, id: 'str', **kwargs) -> 'V1DeleteClusterResponse': # noqa: E501
669
774
  """cluster_service_delete_cluster # noqa: E501
670
775
 
@@ -159,6 +159,7 @@ class LitRegistryServiceApi(object):
159
159
  :param async_req bool
160
160
  :param str project_id: (required)
161
161
  :param str lit_repo_name: (required)
162
+ :param str cluster_id:
162
163
  :return: V1DeleteLitRepositoryResponse
163
164
  If the method is called asynchronously,
164
165
  returns the request thread.
@@ -181,12 +182,13 @@ class LitRegistryServiceApi(object):
181
182
  :param async_req bool
182
183
  :param str project_id: (required)
183
184
  :param str lit_repo_name: (required)
185
+ :param str cluster_id:
184
186
  :return: V1DeleteLitRepositoryResponse
185
187
  If the method is called asynchronously,
186
188
  returns the request thread.
187
189
  """
188
190
 
189
- all_params = ['project_id', 'lit_repo_name'] # noqa: E501
191
+ all_params = ['project_id', 'lit_repo_name', 'cluster_id'] # noqa: E501
190
192
  all_params.append('async_req')
191
193
  all_params.append('_return_http_data_only')
192
194
  all_params.append('_preload_content')
@@ -219,6 +221,8 @@ class LitRegistryServiceApi(object):
219
221
  path_params['litRepoName'] = params['lit_repo_name'] # noqa: E501
220
222
 
221
223
  query_params = []
224
+ if 'cluster_id' in params:
225
+ query_params.append(('clusterId', params['cluster_id'])) # noqa: E501
222
226
 
223
227
  header_params = {}
224
228
 
@@ -475,6 +479,7 @@ class LitRegistryServiceApi(object):
475
479
  :param str project_id: (required)
476
480
  :param str lit_repo_name: (required)
477
481
  :param bool latest_only:
482
+ :param str cluster_id:
478
483
  :return: V1LitRepository
479
484
  If the method is called asynchronously,
480
485
  returns the request thread.
@@ -498,12 +503,13 @@ class LitRegistryServiceApi(object):
498
503
  :param str project_id: (required)
499
504
  :param str lit_repo_name: (required)
500
505
  :param bool latest_only:
506
+ :param str cluster_id:
501
507
  :return: V1LitRepository
502
508
  If the method is called asynchronously,
503
509
  returns the request thread.
504
510
  """
505
511
 
506
- all_params = ['project_id', 'lit_repo_name', 'latest_only'] # noqa: E501
512
+ all_params = ['project_id', 'lit_repo_name', 'latest_only', 'cluster_id'] # noqa: E501
507
513
  all_params.append('async_req')
508
514
  all_params.append('_return_http_data_only')
509
515
  all_params.append('_preload_content')
@@ -538,6 +544,8 @@ class LitRegistryServiceApi(object):
538
544
  query_params = []
539
545
  if 'latest_only' in params:
540
546
  query_params.append(('latestOnly', params['latest_only'])) # noqa: E501
547
+ if 'cluster_id' in params:
548
+ query_params.append(('clusterId', params['cluster_id'])) # noqa: E501
541
549
 
542
550
  header_params = {}
543
551
 
@@ -580,6 +588,7 @@ class LitRegistryServiceApi(object):
580
588
  :param str project_id: (required)
581
589
  :param str lit_repo_name: (required)
582
590
  :param bool latest_only:
591
+ :param str cluster_id:
583
592
  :return: V1ListLitRegistryRepositoryImageArtifactVersionsResponse
584
593
  If the method is called asynchronously,
585
594
  returns the request thread.
@@ -603,12 +612,13 @@ class LitRegistryServiceApi(object):
603
612
  :param str project_id: (required)
604
613
  :param str lit_repo_name: (required)
605
614
  :param bool latest_only:
615
+ :param str cluster_id:
606
616
  :return: V1ListLitRegistryRepositoryImageArtifactVersionsResponse
607
617
  If the method is called asynchronously,
608
618
  returns the request thread.
609
619
  """
610
620
 
611
- all_params = ['project_id', 'lit_repo_name', 'latest_only'] # noqa: E501
621
+ all_params = ['project_id', 'lit_repo_name', 'latest_only', 'cluster_id'] # noqa: E501
612
622
  all_params.append('async_req')
613
623
  all_params.append('_return_http_data_only')
614
624
  all_params.append('_preload_content')
@@ -643,6 +653,8 @@ class LitRegistryServiceApi(object):
643
653
  query_params = []
644
654
  if 'latest_only' in params:
645
655
  query_params.append(('latestOnly', params['latest_only'])) # noqa: E501
656
+ if 'cluster_id' in params:
657
+ query_params.append(('clusterId', params['cluster_id'])) # noqa: E501
646
658
 
647
659
  header_params = {}
648
660
 
@@ -154,6 +154,7 @@ from lightning_sdk.lightning_cloud.openapi.models.rpc_status import RpcStatus
154
154
  from lightning_sdk.lightning_cloud.openapi.models.schedules_id_body import SchedulesIdBody
155
155
  from lightning_sdk.lightning_cloud.openapi.models.secrets_id_body import SecretsIdBody
156
156
  from lightning_sdk.lightning_cloud.openapi.models.secrets_id_body1 import SecretsIdBody1
157
+ from lightning_sdk.lightning_cloud.openapi.models.server_id_alerts_body import ServerIdAlertsBody
157
158
  from lightning_sdk.lightning_cloud.openapi.models.servers_server_id_body import ServersServerIdBody
158
159
  from lightning_sdk.lightning_cloud.openapi.models.service_artifact_artifact_kind import ServiceArtifactArtifactKind
159
160
  from lightning_sdk.lightning_cloud.openapi.models.service_health_service_status import ServiceHealthServiceStatus
@@ -231,6 +232,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_code_version im
231
232
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_code_version_status import V1CloudSpaceCodeVersionStatus
232
233
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_engagement_response import V1CloudSpaceEngagementResponse
233
234
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_environment_template import V1CloudSpaceEnvironmentTemplate
235
+ from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_environment_template_config import V1CloudSpaceEnvironmentTemplateConfig
234
236
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_instance_collab_status import V1CloudSpaceInstanceCollabStatus
235
237
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_instance_config import V1CloudSpaceInstanceConfig
236
238
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_instance_startup_status import V1CloudSpaceInstanceStartupStatus
@@ -304,6 +306,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_create_organization_request
304
306
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_pipeline_template_request import V1CreatePipelineTemplateRequest
305
307
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_project_request import V1CreateProjectRequest
306
308
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_ssh_public_key_request import V1CreateSSHPublicKeyRequest
309
+ from lightning_sdk.lightning_cloud.openapi.models.v1_create_server_alert_response import V1CreateServerAlertResponse
307
310
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_shared_metrics_stream_request import V1CreateSharedMetricsStreamRequest
308
311
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_shared_metrics_stream_response import V1CreateSharedMetricsStreamResponse
309
312
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_snowflake_connection_response import V1CreateSnowflakeConnectionResponse
@@ -728,6 +731,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_report_restart_timings_resp
728
731
  from lightning_sdk.lightning_cloud.openapi.models.v1_request_cluster_access_request import V1RequestClusterAccessRequest
729
732
  from lightning_sdk.lightning_cloud.openapi.models.v1_request_cluster_access_response import V1RequestClusterAccessResponse
730
733
  from lightning_sdk.lightning_cloud.openapi.models.v1_request_verification_code_response import V1RequestVerificationCodeResponse
734
+ from lightning_sdk.lightning_cloud.openapi.models.v1_reservation_details import V1ReservationDetails
731
735
  from lightning_sdk.lightning_cloud.openapi.models.v1_resource_tag import V1ResourceTag
732
736
  from lightning_sdk.lightning_cloud.openapi.models.v1_resource_visibility import V1ResourceVisibility
733
737
  from lightning_sdk.lightning_cloud.openapi.models.v1_resources import V1Resources
@@ -755,6 +759,9 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_search_users_response impor
755
759
  from lightning_sdk.lightning_cloud.openapi.models.v1_secret import V1Secret
756
760
  from lightning_sdk.lightning_cloud.openapi.models.v1_secret_type import V1SecretType
757
761
  from lightning_sdk.lightning_cloud.openapi.models.v1_select import V1Select
762
+ from lightning_sdk.lightning_cloud.openapi.models.v1_server_alert import V1ServerAlert
763
+ from lightning_sdk.lightning_cloud.openapi.models.v1_server_alert_severity import V1ServerAlertSeverity
764
+ from lightning_sdk.lightning_cloud.openapi.models.v1_server_alert_type import V1ServerAlertType
758
765
  from lightning_sdk.lightning_cloud.openapi.models.v1_server_check_in_response import V1ServerCheckInResponse
759
766
  from lightning_sdk.lightning_cloud.openapi.models.v1_service_artifact import V1ServiceArtifact
760
767
  from lightning_sdk.lightning_cloud.openapi.models.v1_service_execution import V1ServiceExecution
@@ -779,6 +786,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_storage_asset_type import V
779
786
  from lightning_sdk.lightning_cloud.openapi.models.v1_storage_system_metrics import V1StorageSystemMetrics
780
787
  from lightning_sdk.lightning_cloud.openapi.models.v1_studio_job import V1StudioJob
781
788
  from lightning_sdk.lightning_cloud.openapi.models.v1_studio_job_app import V1StudioJobApp
789
+ from lightning_sdk.lightning_cloud.openapi.models.v1_subnet_spec import V1SubnetSpec
782
790
  from lightning_sdk.lightning_cloud.openapi.models.v1_switch_cloud_space_instance_response import V1SwitchCloudSpaceInstanceResponse
783
791
  from lightning_sdk.lightning_cloud.openapi.models.v1_system_info import V1SystemInfo
784
792
  from lightning_sdk.lightning_cloud.openapi.models.v1_system_metrics import V1SystemMetrics
@@ -41,6 +41,7 @@ class EnvironmenttemplatesIdBody(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
+ 'config': 'V1CloudSpaceEnvironmentTemplateConfig',
44
45
  'created_at': 'datetime',
45
46
  'name': 'str',
46
47
  'org_id': 'str',
@@ -49,6 +50,7 @@ class EnvironmenttemplatesIdBody(object):
49
50
  }
50
51
 
51
52
  attribute_map = {
53
+ 'config': 'config',
52
54
  'created_at': 'createdAt',
53
55
  'name': 'name',
54
56
  'org_id': 'orgId',
@@ -56,14 +58,17 @@ class EnvironmenttemplatesIdBody(object):
56
58
  'user_id': 'userId'
57
59
  }
58
60
 
59
- def __init__(self, created_at: 'datetime' =None, name: 'str' =None, org_id: 'str' =None, updated_at: 'datetime' =None, user_id: 'str' =None): # noqa: E501
61
+ def __init__(self, config: 'V1CloudSpaceEnvironmentTemplateConfig' =None, created_at: 'datetime' =None, name: 'str' =None, org_id: 'str' =None, updated_at: 'datetime' =None, user_id: 'str' =None): # noqa: E501
60
62
  """EnvironmenttemplatesIdBody - a model defined in Swagger""" # noqa: E501
63
+ self._config = None
61
64
  self._created_at = None
62
65
  self._name = None
63
66
  self._org_id = None
64
67
  self._updated_at = None
65
68
  self._user_id = None
66
69
  self.discriminator = None
70
+ if config is not None:
71
+ self.config = config
67
72
  if created_at is not None:
68
73
  self.created_at = created_at
69
74
  if name is not None:
@@ -75,6 +80,27 @@ class EnvironmenttemplatesIdBody(object):
75
80
  if user_id is not None:
76
81
  self.user_id = user_id
77
82
 
83
+ @property
84
+ def config(self) -> 'V1CloudSpaceEnvironmentTemplateConfig':
85
+ """Gets the config of this EnvironmenttemplatesIdBody. # noqa: E501
86
+
87
+
88
+ :return: The config of this EnvironmenttemplatesIdBody. # noqa: E501
89
+ :rtype: V1CloudSpaceEnvironmentTemplateConfig
90
+ """
91
+ return self._config
92
+
93
+ @config.setter
94
+ def config(self, config: 'V1CloudSpaceEnvironmentTemplateConfig'):
95
+ """Sets the config of this EnvironmenttemplatesIdBody.
96
+
97
+
98
+ :param config: The config of this EnvironmenttemplatesIdBody. # noqa: E501
99
+ :type: V1CloudSpaceEnvironmentTemplateConfig
100
+ """
101
+
102
+ self._config = config
103
+
78
104
  @property
79
105
  def created_at(self) -> 'datetime':
80
106
  """Gets the created_at of this EnvironmenttemplatesIdBody. # noqa: E501
@@ -41,6 +41,7 @@ class Externalv1CloudSpaceInstanceStatus(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
+ 'alerts': 'list[V1ServerAlert]',
44
45
  'app_url': 'str',
45
46
  'bytes_to_sync': 'str',
46
47
  'cloud_space_id': 'str',
@@ -73,6 +74,7 @@ class Externalv1CloudSpaceInstanceStatus(object):
73
74
  }
74
75
 
75
76
  attribute_map = {
77
+ 'alerts': 'alerts',
76
78
  'app_url': 'appUrl',
77
79
  'bytes_to_sync': 'bytesToSync',
78
80
  'cloud_space_id': 'cloudSpaceId',
@@ -104,8 +106,9 @@ class Externalv1CloudSpaceInstanceStatus(object):
104
106
  'vscode_url': 'vscodeUrl'
105
107
  }
106
108
 
107
- def __init__(self, app_url: 'str' =None, bytes_to_sync: 'str' =None, cloud_space_id: 'str' =None, cloud_space_instance_id: 'str' =None, compute_config: 'V1UserRequestedComputeConfig' =None, creation_timestamp: 'datetime' =None, data_connection_mounts: 'list[V1DataConnectionMount]' =None, files_to_sync: 'str' =None, free: 'bool' =None, ide: 'str' =None, instance_id: 'str' =None, instance_region: 'str' =None, instance_url: 'str' =None, jupyterlab_url: 'str' =None, phase: 'V1CloudSpaceInstanceState' =None, price: 'float' =None, ssh_host: 'str' =None, ssh_port: 'int' =None, ssh_username: 'str' =None, start_timestamp: 'datetime' =None, startup_eta_seconds: 'str' =None, startup_percentage: 'str' =None, startup_phase: 'str' =None, startup_status: 'V1CloudSpaceInstanceStartupStatus' =None, status_message: 'str' =None, switched_at: 'datetime' =None, sync_last_updated: 'datetime' =None, termination_time: 'datetime' =None, vscode_url: 'str' =None): # noqa: E501
109
+ def __init__(self, alerts: 'list[V1ServerAlert]' =None, app_url: 'str' =None, bytes_to_sync: 'str' =None, cloud_space_id: 'str' =None, cloud_space_instance_id: 'str' =None, compute_config: 'V1UserRequestedComputeConfig' =None, creation_timestamp: 'datetime' =None, data_connection_mounts: 'list[V1DataConnectionMount]' =None, files_to_sync: 'str' =None, free: 'bool' =None, ide: 'str' =None, instance_id: 'str' =None, instance_region: 'str' =None, instance_url: 'str' =None, jupyterlab_url: 'str' =None, phase: 'V1CloudSpaceInstanceState' =None, price: 'float' =None, ssh_host: 'str' =None, ssh_port: 'int' =None, ssh_username: 'str' =None, start_timestamp: 'datetime' =None, startup_eta_seconds: 'str' =None, startup_percentage: 'str' =None, startup_phase: 'str' =None, startup_status: 'V1CloudSpaceInstanceStartupStatus' =None, status_message: 'str' =None, switched_at: 'datetime' =None, sync_last_updated: 'datetime' =None, termination_time: 'datetime' =None, vscode_url: 'str' =None): # noqa: E501
108
110
  """Externalv1CloudSpaceInstanceStatus - a model defined in Swagger""" # noqa: E501
111
+ self._alerts = None
109
112
  self._app_url = None
110
113
  self._bytes_to_sync = None
111
114
  self._cloud_space_id = None
@@ -136,6 +139,8 @@ class Externalv1CloudSpaceInstanceStatus(object):
136
139
  self._termination_time = None
137
140
  self._vscode_url = None
138
141
  self.discriminator = None
142
+ if alerts is not None:
143
+ self.alerts = alerts
139
144
  if app_url is not None:
140
145
  self.app_url = app_url
141
146
  if bytes_to_sync is not None:
@@ -195,6 +200,27 @@ class Externalv1CloudSpaceInstanceStatus(object):
195
200
  if vscode_url is not None:
196
201
  self.vscode_url = vscode_url
197
202
 
203
+ @property
204
+ def alerts(self) -> 'list[V1ServerAlert]':
205
+ """Gets the alerts of this Externalv1CloudSpaceInstanceStatus. # noqa: E501
206
+
207
+
208
+ :return: The alerts of this Externalv1CloudSpaceInstanceStatus. # noqa: E501
209
+ :rtype: list[V1ServerAlert]
210
+ """
211
+ return self._alerts
212
+
213
+ @alerts.setter
214
+ def alerts(self, alerts: 'list[V1ServerAlert]'):
215
+ """Sets the alerts of this Externalv1CloudSpaceInstanceStatus.
216
+
217
+
218
+ :param alerts: The alerts of this Externalv1CloudSpaceInstanceStatus. # noqa: E501
219
+ :type: list[V1ServerAlert]
220
+ """
221
+
222
+ self._alerts = alerts
223
+
198
224
  @property
199
225
  def app_url(self) -> 'str':
200
226
  """Gets the app_url of this Externalv1CloudSpaceInstanceStatus. # noqa: E501
@@ -44,6 +44,7 @@ class Externalv1Cluster(object):
44
44
  'created_at': 'datetime',
45
45
  'id': 'str',
46
46
  'name': 'str',
47
+ 'protected': 'bool',
47
48
  'spec': 'V1ClusterSpec',
48
49
  'status': 'V1ClusterStatus'
49
50
  }
@@ -52,15 +53,17 @@ class Externalv1Cluster(object):
52
53
  'created_at': 'createdAt',
53
54
  'id': 'id',
54
55
  'name': 'name',
56
+ 'protected': 'protected',
55
57
  'spec': 'spec',
56
58
  'status': 'status'
57
59
  }
58
60
 
59
- def __init__(self, created_at: 'datetime' =None, id: 'str' =None, name: 'str' =None, spec: 'V1ClusterSpec' =None, status: 'V1ClusterStatus' =None): # noqa: E501
61
+ def __init__(self, created_at: 'datetime' =None, id: 'str' =None, name: 'str' =None, protected: 'bool' =None, spec: 'V1ClusterSpec' =None, status: 'V1ClusterStatus' =None): # noqa: E501
60
62
  """Externalv1Cluster - a model defined in Swagger""" # noqa: E501
61
63
  self._created_at = None
62
64
  self._id = None
63
65
  self._name = None
66
+ self._protected = None
64
67
  self._spec = None
65
68
  self._status = None
66
69
  self.discriminator = None
@@ -70,6 +73,8 @@ class Externalv1Cluster(object):
70
73
  self.id = id
71
74
  if name is not None:
72
75
  self.name = name
76
+ if protected is not None:
77
+ self.protected = protected
73
78
  if spec is not None:
74
79
  self.spec = spec
75
80
  if status is not None:
@@ -138,6 +143,27 @@ class Externalv1Cluster(object):
138
143
 
139
144
  self._name = name
140
145
 
146
+ @property
147
+ def protected(self) -> 'bool':
148
+ """Gets the protected of this Externalv1Cluster. # noqa: E501
149
+
150
+
151
+ :return: The protected of this Externalv1Cluster. # noqa: E501
152
+ :rtype: bool
153
+ """
154
+ return self._protected
155
+
156
+ @protected.setter
157
+ def protected(self, protected: 'bool'):
158
+ """Sets the protected of this Externalv1Cluster.
159
+
160
+
161
+ :param protected: The protected of this Externalv1Cluster. # noqa: E501
162
+ :type: bool
163
+ """
164
+
165
+ self._protected = protected
166
+
141
167
  @property
142
168
  def spec(self) -> 'V1ClusterSpec':
143
169
  """Gets the spec of this Externalv1Cluster. # noqa: E501