lightning-sdk 2025.8.18__py3-none-any.whl → 2025.8.19.post0__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 (31) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/cloud_account_api.py +5 -0
  3. lightning_sdk/api/studio_api.py +14 -36
  4. lightning_sdk/api/utils.py +108 -18
  5. lightning_sdk/cli/config/get.py +16 -0
  6. lightning_sdk/cli/config/set.py +27 -0
  7. lightning_sdk/cli/studio/create.py +16 -1
  8. lightning_sdk/cli/studio/start.py +20 -2
  9. lightning_sdk/lightning_cloud/openapi/__init__.py +1 -0
  10. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +113 -0
  11. lightning_sdk/lightning_cloud/openapi/models/__init__.py +1 -0
  12. lightning_sdk/lightning_cloud/openapi/models/id_codeconfig_body.py +3 -81
  13. lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +27 -1
  14. lightning_sdk/lightning_cloud/openapi/models/project_id_storage_body.py +27 -1
  15. lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +27 -1
  16. lightning_sdk/lightning_cloud/openapi/models/uploads_upload_id_body1.py +27 -1
  17. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_metrics.py +79 -1
  18. lightning_sdk/lightning_cloud/openapi/models/v1_list_aggregated_pod_metrics_response.py +123 -0
  19. lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +79 -1
  20. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +27 -1
  21. lightning_sdk/lightning_cloud/openapi/models/v1_update_cloud_space_instance_config_request.py +3 -81
  22. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +1 -105
  23. lightning_sdk/studio.py +0 -1
  24. lightning_sdk/utils/config.py +3 -0
  25. lightning_sdk/utils/resolve.py +12 -0
  26. {lightning_sdk-2025.8.18.dist-info → lightning_sdk-2025.8.19.post0.dist-info}/METADATA +1 -1
  27. {lightning_sdk-2025.8.18.dist-info → lightning_sdk-2025.8.19.post0.dist-info}/RECORD +31 -30
  28. {lightning_sdk-2025.8.18.dist-info → lightning_sdk-2025.8.19.post0.dist-info}/LICENSE +0 -0
  29. {lightning_sdk-2025.8.18.dist-info → lightning_sdk-2025.8.19.post0.dist-info}/WHEEL +0 -0
  30. {lightning_sdk-2025.8.18.dist-info → lightning_sdk-2025.8.19.post0.dist-info}/entry_points.txt +0 -0
  31. {lightning_sdk-2025.8.18.dist-info → lightning_sdk-2025.8.19.post0.dist-info}/top_level.txt +0 -0
@@ -44,12 +44,15 @@ class V1NodeMetrics(object):
44
44
  'cpu_capacity_cores': 'float',
45
45
  'cpu_util': 'float',
46
46
  'filesystem': 'dict(str, V1FilesystemMetrics)',
47
+ 'max_power_per_gpu': 'float',
47
48
  'mem_total': 'float',
48
49
  'mem_util': 'float',
49
50
  'node_name': 'str',
50
51
  'per_gpu_mem_free': 'dict(str, float)',
51
52
  'per_gpu_mem_used': 'dict(str, float)',
52
53
  'per_gpu_power_usage_watts': 'dict(str, float)',
54
+ 'per_gpu_sm_active': 'dict(str, float)',
55
+ 'per_gpu_sm_occupancy': 'dict(str, float)',
53
56
  'per_gpu_temperature_c': 'dict(str, float)',
54
57
  'per_gpu_util': 'dict(str, float)',
55
58
  'timestamp': 'datetime'
@@ -59,28 +62,34 @@ class V1NodeMetrics(object):
59
62
  'cpu_capacity_cores': 'cpuCapacityCores',
60
63
  'cpu_util': 'cpuUtil',
61
64
  'filesystem': 'filesystem',
65
+ 'max_power_per_gpu': 'maxPowerPerGpu',
62
66
  'mem_total': 'memTotal',
63
67
  'mem_util': 'memUtil',
64
68
  'node_name': 'nodeName',
65
69
  'per_gpu_mem_free': 'perGpuMemFree',
66
70
  'per_gpu_mem_used': 'perGpuMemUsed',
67
71
  'per_gpu_power_usage_watts': 'perGpuPowerUsageWatts',
72
+ 'per_gpu_sm_active': 'perGpuSmActive',
73
+ 'per_gpu_sm_occupancy': 'perGpuSmOccupancy',
68
74
  'per_gpu_temperature_c': 'perGpuTemperatureC',
69
75
  'per_gpu_util': 'perGpuUtil',
70
76
  'timestamp': 'timestamp'
71
77
  }
72
78
 
73
- def __init__(self, cpu_capacity_cores: 'float' =None, cpu_util: 'float' =None, filesystem: 'dict(str, V1FilesystemMetrics)' =None, mem_total: 'float' =None, mem_util: 'float' =None, node_name: 'str' =None, per_gpu_mem_free: 'dict(str, float)' =None, per_gpu_mem_used: 'dict(str, float)' =None, per_gpu_power_usage_watts: 'dict(str, float)' =None, per_gpu_temperature_c: 'dict(str, float)' =None, per_gpu_util: 'dict(str, float)' =None, timestamp: 'datetime' =None): # noqa: E501
79
+ def __init__(self, cpu_capacity_cores: 'float' =None, cpu_util: 'float' =None, filesystem: 'dict(str, V1FilesystemMetrics)' =None, max_power_per_gpu: 'float' =None, mem_total: 'float' =None, mem_util: 'float' =None, node_name: 'str' =None, per_gpu_mem_free: 'dict(str, float)' =None, per_gpu_mem_used: 'dict(str, float)' =None, per_gpu_power_usage_watts: 'dict(str, float)' =None, per_gpu_sm_active: 'dict(str, float)' =None, per_gpu_sm_occupancy: 'dict(str, float)' =None, per_gpu_temperature_c: 'dict(str, float)' =None, per_gpu_util: 'dict(str, float)' =None, timestamp: 'datetime' =None): # noqa: E501
74
80
  """V1NodeMetrics - a model defined in Swagger""" # noqa: E501
75
81
  self._cpu_capacity_cores = None
76
82
  self._cpu_util = None
77
83
  self._filesystem = None
84
+ self._max_power_per_gpu = None
78
85
  self._mem_total = None
79
86
  self._mem_util = None
80
87
  self._node_name = None
81
88
  self._per_gpu_mem_free = None
82
89
  self._per_gpu_mem_used = None
83
90
  self._per_gpu_power_usage_watts = None
91
+ self._per_gpu_sm_active = None
92
+ self._per_gpu_sm_occupancy = None
84
93
  self._per_gpu_temperature_c = None
85
94
  self._per_gpu_util = None
86
95
  self._timestamp = None
@@ -91,6 +100,8 @@ class V1NodeMetrics(object):
91
100
  self.cpu_util = cpu_util
92
101
  if filesystem is not None:
93
102
  self.filesystem = filesystem
103
+ if max_power_per_gpu is not None:
104
+ self.max_power_per_gpu = max_power_per_gpu
94
105
  if mem_total is not None:
95
106
  self.mem_total = mem_total
96
107
  if mem_util is not None:
@@ -103,6 +114,10 @@ class V1NodeMetrics(object):
103
114
  self.per_gpu_mem_used = per_gpu_mem_used
104
115
  if per_gpu_power_usage_watts is not None:
105
116
  self.per_gpu_power_usage_watts = per_gpu_power_usage_watts
117
+ if per_gpu_sm_active is not None:
118
+ self.per_gpu_sm_active = per_gpu_sm_active
119
+ if per_gpu_sm_occupancy is not None:
120
+ self.per_gpu_sm_occupancy = per_gpu_sm_occupancy
106
121
  if per_gpu_temperature_c is not None:
107
122
  self.per_gpu_temperature_c = per_gpu_temperature_c
108
123
  if per_gpu_util is not None:
@@ -173,6 +188,27 @@ class V1NodeMetrics(object):
173
188
 
174
189
  self._filesystem = filesystem
175
190
 
191
+ @property
192
+ def max_power_per_gpu(self) -> 'float':
193
+ """Gets the max_power_per_gpu of this V1NodeMetrics. # noqa: E501
194
+
195
+
196
+ :return: The max_power_per_gpu of this V1NodeMetrics. # noqa: E501
197
+ :rtype: float
198
+ """
199
+ return self._max_power_per_gpu
200
+
201
+ @max_power_per_gpu.setter
202
+ def max_power_per_gpu(self, max_power_per_gpu: 'float'):
203
+ """Sets the max_power_per_gpu of this V1NodeMetrics.
204
+
205
+
206
+ :param max_power_per_gpu: The max_power_per_gpu of this V1NodeMetrics. # noqa: E501
207
+ :type: float
208
+ """
209
+
210
+ self._max_power_per_gpu = max_power_per_gpu
211
+
176
212
  @property
177
213
  def mem_total(self) -> 'float':
178
214
  """Gets the mem_total of this V1NodeMetrics. # noqa: E501
@@ -299,6 +335,48 @@ class V1NodeMetrics(object):
299
335
 
300
336
  self._per_gpu_power_usage_watts = per_gpu_power_usage_watts
301
337
 
338
+ @property
339
+ def per_gpu_sm_active(self) -> 'dict(str, float)':
340
+ """Gets the per_gpu_sm_active of this V1NodeMetrics. # noqa: E501
341
+
342
+
343
+ :return: The per_gpu_sm_active of this V1NodeMetrics. # noqa: E501
344
+ :rtype: dict(str, float)
345
+ """
346
+ return self._per_gpu_sm_active
347
+
348
+ @per_gpu_sm_active.setter
349
+ def per_gpu_sm_active(self, per_gpu_sm_active: 'dict(str, float)'):
350
+ """Sets the per_gpu_sm_active of this V1NodeMetrics.
351
+
352
+
353
+ :param per_gpu_sm_active: The per_gpu_sm_active of this V1NodeMetrics. # noqa: E501
354
+ :type: dict(str, float)
355
+ """
356
+
357
+ self._per_gpu_sm_active = per_gpu_sm_active
358
+
359
+ @property
360
+ def per_gpu_sm_occupancy(self) -> 'dict(str, float)':
361
+ """Gets the per_gpu_sm_occupancy of this V1NodeMetrics. # noqa: E501
362
+
363
+
364
+ :return: The per_gpu_sm_occupancy of this V1NodeMetrics. # noqa: E501
365
+ :rtype: dict(str, float)
366
+ """
367
+ return self._per_gpu_sm_occupancy
368
+
369
+ @per_gpu_sm_occupancy.setter
370
+ def per_gpu_sm_occupancy(self, per_gpu_sm_occupancy: 'dict(str, float)'):
371
+ """Sets the per_gpu_sm_occupancy of this V1NodeMetrics.
372
+
373
+
374
+ :param per_gpu_sm_occupancy: The per_gpu_sm_occupancy of this V1NodeMetrics. # noqa: E501
375
+ :type: dict(str, float)
376
+ """
377
+
378
+ self._per_gpu_sm_occupancy = per_gpu_sm_occupancy
379
+
302
380
  @property
303
381
  def per_gpu_temperature_c(self) -> 'dict(str, float)':
304
382
  """Gets the per_gpu_temperature_c of this V1NodeMetrics. # noqa: E501
@@ -82,6 +82,7 @@ class V1Organization(object):
82
82
  'preferred_cluster': 'str',
83
83
  'preferred_deployment_provider': 'str',
84
84
  'preferred_studio_provider': 'str',
85
+ 'show_model_apis_tab': 'bool',
85
86
  'start_studios_on_spot_instance': 'bool',
86
87
  'storage_overuse_bytes': 'str',
87
88
  'storage_overuse_deletion_at': 'datetime',
@@ -135,6 +136,7 @@ class V1Organization(object):
135
136
  'preferred_cluster': 'preferredCluster',
136
137
  'preferred_deployment_provider': 'preferredDeploymentProvider',
137
138
  'preferred_studio_provider': 'preferredStudioProvider',
139
+ 'show_model_apis_tab': 'showModelApisTab',
138
140
  'start_studios_on_spot_instance': 'startStudiosOnSpotInstance',
139
141
  'storage_overuse_bytes': 'storageOveruseBytes',
140
142
  'storage_overuse_deletion_at': 'storageOveruseDeletionAt',
@@ -146,7 +148,7 @@ class V1Organization(object):
146
148
  'workload_max_run_duration': 'workloadMaxRunDuration'
147
149
  }
148
150
 
149
- def __init__(self, alerts_config: 'V1AlertsConfig' =None, allow_budgeting: 'bool' =None, allow_credits_auto_replenish: 'bool' =None, allow_external_project_duplication: 'bool' =None, allow_guest: 'bool' =None, allow_marketplace: 'bool' =None, allow_member_invitations: 'bool' =None, allow_member_teamspace_creation: 'bool' =None, auto_invite_by_domain: 'bool' =None, auto_join_domain_validations: 'dict(str, V1AutoJoinDomainValidation)' =None, auto_join_domains: 'list[str]' =None, auto_replenish_amount: 'float' =None, auto_replenish_threshold: 'float' =None, auto_switch_machine: 'bool' =None, created_at: 'datetime' =None, default_machine_image_version: 'str' =None, default_machine_type: 'str' =None, default_project_id: 'str' =None, description: 'str' =None, disallow_aws_saas: 'bool' =None, disallow_dgx_saas: 'bool' =None, disallow_gcp_saas: 'bool' =None, disallow_lambda_saas: 'bool' =None, disallow_lightning_saas: 'bool' =None, disallow_nebius_saas: 'bool' =None, disallow_voltage_park_saas: 'bool' =None, disallow_vultr_saas: 'bool' =None, display_name: 'str' =None, domain: 'str' =None, email: 'str' =None, featured_gallery: 'bool' =None, full_story_end_date: 'datetime' =None, full_story_start_date: 'datetime' =None, general_teamspace: 'bool' =None, id: 'str' =None, last_storage_overuse_notification_sent_at: 'datetime' =None, location: 'str' =None, name: 'str' =None, preferred_cluster: 'str' =None, preferred_deployment_provider: 'str' =None, preferred_studio_provider: 'str' =None, start_studios_on_spot_instance: 'bool' =None, storage_overuse_bytes: 'str' =None, storage_overuse_deletion_at: 'datetime' =None, storage_overuse_notification_count: 'int' =None, switch_to_default_machine_on_idle: 'bool' =None, teamspace_default_credits: 'float' =None, twitter_username: 'str' =None, updated_at: 'datetime' =None, workload_max_run_duration: 'str' =None): # noqa: E501
151
+ def __init__(self, alerts_config: 'V1AlertsConfig' =None, allow_budgeting: 'bool' =None, allow_credits_auto_replenish: 'bool' =None, allow_external_project_duplication: 'bool' =None, allow_guest: 'bool' =None, allow_marketplace: 'bool' =None, allow_member_invitations: 'bool' =None, allow_member_teamspace_creation: 'bool' =None, auto_invite_by_domain: 'bool' =None, auto_join_domain_validations: 'dict(str, V1AutoJoinDomainValidation)' =None, auto_join_domains: 'list[str]' =None, auto_replenish_amount: 'float' =None, auto_replenish_threshold: 'float' =None, auto_switch_machine: 'bool' =None, created_at: 'datetime' =None, default_machine_image_version: 'str' =None, default_machine_type: 'str' =None, default_project_id: 'str' =None, description: 'str' =None, disallow_aws_saas: 'bool' =None, disallow_dgx_saas: 'bool' =None, disallow_gcp_saas: 'bool' =None, disallow_lambda_saas: 'bool' =None, disallow_lightning_saas: 'bool' =None, disallow_nebius_saas: 'bool' =None, disallow_voltage_park_saas: 'bool' =None, disallow_vultr_saas: 'bool' =None, display_name: 'str' =None, domain: 'str' =None, email: 'str' =None, featured_gallery: 'bool' =None, full_story_end_date: 'datetime' =None, full_story_start_date: 'datetime' =None, general_teamspace: 'bool' =None, id: 'str' =None, last_storage_overuse_notification_sent_at: 'datetime' =None, location: 'str' =None, name: 'str' =None, preferred_cluster: 'str' =None, preferred_deployment_provider: 'str' =None, preferred_studio_provider: 'str' =None, show_model_apis_tab: 'bool' =None, start_studios_on_spot_instance: 'bool' =None, storage_overuse_bytes: 'str' =None, storage_overuse_deletion_at: 'datetime' =None, storage_overuse_notification_count: 'int' =None, switch_to_default_machine_on_idle: 'bool' =None, teamspace_default_credits: 'float' =None, twitter_username: 'str' =None, updated_at: 'datetime' =None, workload_max_run_duration: 'str' =None): # noqa: E501
150
152
  """V1Organization - a model defined in Swagger""" # noqa: E501
151
153
  self._alerts_config = None
152
154
  self._allow_budgeting = None
@@ -189,6 +191,7 @@ class V1Organization(object):
189
191
  self._preferred_cluster = None
190
192
  self._preferred_deployment_provider = None
191
193
  self._preferred_studio_provider = None
194
+ self._show_model_apis_tab = None
192
195
  self._start_studios_on_spot_instance = None
193
196
  self._storage_overuse_bytes = None
194
197
  self._storage_overuse_deletion_at = None
@@ -281,6 +284,8 @@ class V1Organization(object):
281
284
  self.preferred_deployment_provider = preferred_deployment_provider
282
285
  if preferred_studio_provider is not None:
283
286
  self.preferred_studio_provider = preferred_studio_provider
287
+ if show_model_apis_tab is not None:
288
+ self.show_model_apis_tab = show_model_apis_tab
284
289
  if start_studios_on_spot_instance is not None:
285
290
  self.start_studios_on_spot_instance = start_studios_on_spot_instance
286
291
  if storage_overuse_bytes is not None:
@@ -1163,6 +1168,27 @@ class V1Organization(object):
1163
1168
 
1164
1169
  self._preferred_studio_provider = preferred_studio_provider
1165
1170
 
1171
+ @property
1172
+ def show_model_apis_tab(self) -> 'bool':
1173
+ """Gets the show_model_apis_tab of this V1Organization. # noqa: E501
1174
+
1175
+
1176
+ :return: The show_model_apis_tab of this V1Organization. # noqa: E501
1177
+ :rtype: bool
1178
+ """
1179
+ return self._show_model_apis_tab
1180
+
1181
+ @show_model_apis_tab.setter
1182
+ def show_model_apis_tab(self, show_model_apis_tab: 'bool'):
1183
+ """Sets the show_model_apis_tab of this V1Organization.
1184
+
1185
+
1186
+ :param show_model_apis_tab: The show_model_apis_tab of this V1Organization. # noqa: E501
1187
+ :type: bool
1188
+ """
1189
+
1190
+ self._show_model_apis_tab = show_model_apis_tab
1191
+
1166
1192
  @property
1167
1193
  def start_studios_on_spot_instance(self) -> 'bool':
1168
1194
  """Gets the start_studios_on_spot_instance of this V1Organization. # noqa: E501
@@ -43,57 +43,42 @@ class V1UpdateCloudSpaceInstanceConfigRequest(object):
43
43
  swagger_types = {
44
44
  'compute_config': 'V1UserRequestedComputeConfig',
45
45
  'data_connection_mounts': 'list[V1DataConnectionMount]',
46
- 'disable_auto_shutdown': 'bool',
47
46
  'id': 'str',
48
47
  'ide': 'str',
49
- 'idle_shutdown_seconds': 'int',
50
48
  'port_plugin_port': 'str',
51
- 'project_id': 'str',
52
- 'switch_to_default_machine_on_idle': 'bool'
49
+ 'project_id': 'str'
53
50
  }
54
51
 
55
52
  attribute_map = {
56
53
  'compute_config': 'computeConfig',
57
54
  'data_connection_mounts': 'dataConnectionMounts',
58
- 'disable_auto_shutdown': 'disableAutoShutdown',
59
55
  'id': 'id',
60
56
  'ide': 'ide',
61
- 'idle_shutdown_seconds': 'idleShutdownSeconds',
62
57
  'port_plugin_port': 'portPluginPort',
63
- 'project_id': 'projectId',
64
- 'switch_to_default_machine_on_idle': 'switchToDefaultMachineOnIdle'
58
+ 'project_id': 'projectId'
65
59
  }
66
60
 
67
- def __init__(self, compute_config: 'V1UserRequestedComputeConfig' =None, data_connection_mounts: 'list[V1DataConnectionMount]' =None, disable_auto_shutdown: 'bool' =None, id: 'str' =None, ide: 'str' =None, idle_shutdown_seconds: 'int' =None, port_plugin_port: 'str' =None, project_id: 'str' =None, switch_to_default_machine_on_idle: 'bool' =None): # noqa: E501
61
+ def __init__(self, compute_config: 'V1UserRequestedComputeConfig' =None, data_connection_mounts: 'list[V1DataConnectionMount]' =None, id: 'str' =None, ide: 'str' =None, port_plugin_port: 'str' =None, project_id: 'str' =None): # noqa: E501
68
62
  """V1UpdateCloudSpaceInstanceConfigRequest - a model defined in Swagger""" # noqa: E501
69
63
  self._compute_config = None
70
64
  self._data_connection_mounts = None
71
- self._disable_auto_shutdown = None
72
65
  self._id = None
73
66
  self._ide = None
74
- self._idle_shutdown_seconds = None
75
67
  self._port_plugin_port = None
76
68
  self._project_id = None
77
- self._switch_to_default_machine_on_idle = None
78
69
  self.discriminator = None
79
70
  if compute_config is not None:
80
71
  self.compute_config = compute_config
81
72
  if data_connection_mounts is not None:
82
73
  self.data_connection_mounts = data_connection_mounts
83
- if disable_auto_shutdown is not None:
84
- self.disable_auto_shutdown = disable_auto_shutdown
85
74
  if id is not None:
86
75
  self.id = id
87
76
  if ide is not None:
88
77
  self.ide = ide
89
- if idle_shutdown_seconds is not None:
90
- self.idle_shutdown_seconds = idle_shutdown_seconds
91
78
  if port_plugin_port is not None:
92
79
  self.port_plugin_port = port_plugin_port
93
80
  if project_id is not None:
94
81
  self.project_id = project_id
95
- if switch_to_default_machine_on_idle is not None:
96
- self.switch_to_default_machine_on_idle = switch_to_default_machine_on_idle
97
82
 
98
83
  @property
99
84
  def compute_config(self) -> 'V1UserRequestedComputeConfig':
@@ -137,27 +122,6 @@ class V1UpdateCloudSpaceInstanceConfigRequest(object):
137
122
 
138
123
  self._data_connection_mounts = data_connection_mounts
139
124
 
140
- @property
141
- def disable_auto_shutdown(self) -> 'bool':
142
- """Gets the disable_auto_shutdown of this V1UpdateCloudSpaceInstanceConfigRequest. # noqa: E501
143
-
144
-
145
- :return: The disable_auto_shutdown of this V1UpdateCloudSpaceInstanceConfigRequest. # noqa: E501
146
- :rtype: bool
147
- """
148
- return self._disable_auto_shutdown
149
-
150
- @disable_auto_shutdown.setter
151
- def disable_auto_shutdown(self, disable_auto_shutdown: 'bool'):
152
- """Sets the disable_auto_shutdown of this V1UpdateCloudSpaceInstanceConfigRequest.
153
-
154
-
155
- :param disable_auto_shutdown: The disable_auto_shutdown of this V1UpdateCloudSpaceInstanceConfigRequest. # noqa: E501
156
- :type: bool
157
- """
158
-
159
- self._disable_auto_shutdown = disable_auto_shutdown
160
-
161
125
  @property
162
126
  def id(self) -> 'str':
163
127
  """Gets the id of this V1UpdateCloudSpaceInstanceConfigRequest. # noqa: E501
@@ -200,27 +164,6 @@ class V1UpdateCloudSpaceInstanceConfigRequest(object):
200
164
 
201
165
  self._ide = ide
202
166
 
203
- @property
204
- def idle_shutdown_seconds(self) -> 'int':
205
- """Gets the idle_shutdown_seconds of this V1UpdateCloudSpaceInstanceConfigRequest. # noqa: E501
206
-
207
-
208
- :return: The idle_shutdown_seconds of this V1UpdateCloudSpaceInstanceConfigRequest. # noqa: E501
209
- :rtype: int
210
- """
211
- return self._idle_shutdown_seconds
212
-
213
- @idle_shutdown_seconds.setter
214
- def idle_shutdown_seconds(self, idle_shutdown_seconds: 'int'):
215
- """Sets the idle_shutdown_seconds of this V1UpdateCloudSpaceInstanceConfigRequest.
216
-
217
-
218
- :param idle_shutdown_seconds: The idle_shutdown_seconds of this V1UpdateCloudSpaceInstanceConfigRequest. # noqa: E501
219
- :type: int
220
- """
221
-
222
- self._idle_shutdown_seconds = idle_shutdown_seconds
223
-
224
167
  @property
225
168
  def port_plugin_port(self) -> 'str':
226
169
  """Gets the port_plugin_port of this V1UpdateCloudSpaceInstanceConfigRequest. # noqa: E501
@@ -263,27 +206,6 @@ class V1UpdateCloudSpaceInstanceConfigRequest(object):
263
206
 
264
207
  self._project_id = project_id
265
208
 
266
- @property
267
- def switch_to_default_machine_on_idle(self) -> 'bool':
268
- """Gets the switch_to_default_machine_on_idle of this V1UpdateCloudSpaceInstanceConfigRequest. # noqa: E501
269
-
270
-
271
- :return: The switch_to_default_machine_on_idle of this V1UpdateCloudSpaceInstanceConfigRequest. # noqa: E501
272
- :rtype: bool
273
- """
274
- return self._switch_to_default_machine_on_idle
275
-
276
- @switch_to_default_machine_on_idle.setter
277
- def switch_to_default_machine_on_idle(self, switch_to_default_machine_on_idle: 'bool'):
278
- """Sets the switch_to_default_machine_on_idle of this V1UpdateCloudSpaceInstanceConfigRequest.
279
-
280
-
281
- :param switch_to_default_machine_on_idle: The switch_to_default_machine_on_idle of this V1UpdateCloudSpaceInstanceConfigRequest. # noqa: E501
282
- :type: bool
283
- """
284
-
285
- self._switch_to_default_machine_on_idle = switch_to_default_machine_on_idle
286
-
287
209
  def to_dict(self) -> dict:
288
210
  """Returns the model properties as a dict"""
289
211
  result = {}
@@ -41,7 +41,6 @@ class V1UserFeatures(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
- 'add_data_v2': 'bool',
45
44
  'affiliate_links': 'bool',
46
45
  'agents_v2': 'bool',
47
46
  'ai_hub_monetization': 'bool',
@@ -75,7 +74,6 @@ class V1UserFeatures(object):
75
74
  'f241': 'bool',
76
75
  'f242': 'bool',
77
76
  'f243': 'bool',
78
- 'f244': 'bool',
79
77
  'f245': 'bool',
80
78
  'fair_share': 'bool',
81
79
  'featured_studios_admin': 'bool',
@@ -109,7 +107,6 @@ class V1UserFeatures(object):
109
107
  'product_license': 'bool',
110
108
  'project_selector': 'bool',
111
109
  'publish_pipelines': 'bool',
112
- 'r2_data_connections': 'bool',
113
110
  'reserved_machines_tab': 'bool',
114
111
  'restartable_jobs': 'bool',
115
112
  'runnable_public_studio_page': 'bool',
@@ -123,7 +120,6 @@ class V1UserFeatures(object):
123
120
  'studio_sharing_v2': 'bool',
124
121
  'studio_version_visibility': 'bool',
125
122
  'trainium2': 'bool',
126
- 'use_internal_data_connection_mounts': 'bool',
127
123
  'use_rclone_mounts_only': 'bool',
128
124
  'vultr': 'bool',
129
125
  'weka': 'bool',
@@ -131,7 +127,6 @@ class V1UserFeatures(object):
131
127
  }
132
128
 
133
129
  attribute_map = {
134
- 'add_data_v2': 'addDataV2',
135
130
  'affiliate_links': 'affiliateLinks',
136
131
  'agents_v2': 'agentsV2',
137
132
  'ai_hub_monetization': 'aiHubMonetization',
@@ -165,7 +160,6 @@ class V1UserFeatures(object):
165
160
  'f241': 'f241',
166
161
  'f242': 'f242',
167
162
  'f243': 'f243',
168
- 'f244': 'f244',
169
163
  'f245': 'f245',
170
164
  'fair_share': 'fairShare',
171
165
  'featured_studios_admin': 'featuredStudiosAdmin',
@@ -199,7 +193,6 @@ class V1UserFeatures(object):
199
193
  'product_license': 'productLicense',
200
194
  'project_selector': 'projectSelector',
201
195
  'publish_pipelines': 'publishPipelines',
202
- 'r2_data_connections': 'r2DataConnections',
203
196
  'reserved_machines_tab': 'reservedMachinesTab',
204
197
  'restartable_jobs': 'restartableJobs',
205
198
  'runnable_public_studio_page': 'runnablePublicStudioPage',
@@ -213,16 +206,14 @@ class V1UserFeatures(object):
213
206
  'studio_sharing_v2': 'studioSharingV2',
214
207
  'studio_version_visibility': 'studioVersionVisibility',
215
208
  'trainium2': 'trainium2',
216
- 'use_internal_data_connection_mounts': 'useInternalDataConnectionMounts',
217
209
  'use_rclone_mounts_only': 'useRcloneMountsOnly',
218
210
  'vultr': 'vultr',
219
211
  'weka': 'weka',
220
212
  'writable_s3_connections': 'writableS3Connections'
221
213
  }
222
214
 
223
- def __init__(self, add_data_v2: 'bool' =None, affiliate_links: 'bool' =None, agents_v2: 'bool' =None, ai_hub_monetization: 'bool' =None, auto_fast_load: 'bool' =None, auto_join_orgs: '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, custom_app_domain: 'bool' =None, datasets: 'bool' =None, default_one_cluster: 'bool' =None, deployment_persistent_disk: 'bool' =None, drive_v2: 'bool' =None, enterprise_compute_admin: 'bool' =None, f227: 'bool' =None, f234: 'bool' =None, f236: 'bool' =None, f237: 'bool' =None, f238: 'bool' =None, f239: 'bool' =None, f240: 'bool' =None, f241: 'bool' =None, f242: 'bool' =None, f243: 'bool' =None, f244: 'bool' =None, f245: 'bool' =None, fair_share: 'bool' =None, featured_studios_admin: 'bool' =None, gcp_overprovisioning: 'bool' =None, gcs_connections_optimized: 'bool' =None, gcs_folders: 'bool' =None, instant_capacity_reservation: 'bool' =None, job_artifacts_v2: 'bool' =None, kubernetes_cluster_ui: 'bool' =None, kubernetes_clusters: 'bool' =None, landing_studios: 'bool' =None, lit_logger: 'bool' =None, marketplace: 'bool' =None, mmt_fault_tolerance: 'bool' =None, mmt_strategy_selector: 'bool' =None, model_api_dashboard: 'bool' =None, multiple_studio_versions: 'bool' =None, nerf_fs_nonpaying: 'bool' =None, onboarding_v2: '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, pricing_updates: 'bool' =None, product_generator: 'bool' =None, product_license: 'bool' =None, project_selector: 'bool' =None, publish_pipelines: 'bool' =None, r2_data_connections: '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, single_wallet: 'bool' =None, slurm: 'bool' =None, specialised_studios: 'bool' =None, storage_overuse_deletion: 'bool' =None, studio_config: 'bool' =None, studio_sharing_v2: 'bool' =None, studio_version_visibility: 'bool' =None, trainium2: 'bool' =None, use_internal_data_connection_mounts: 'bool' =None, use_rclone_mounts_only: 'bool' =None, vultr: 'bool' =None, weka: 'bool' =None, writable_s3_connections: 'bool' =None): # noqa: E501
215
+ def __init__(self, affiliate_links: 'bool' =None, agents_v2: 'bool' =None, ai_hub_monetization: 'bool' =None, auto_fast_load: 'bool' =None, auto_join_orgs: '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, custom_app_domain: 'bool' =None, datasets: 'bool' =None, default_one_cluster: 'bool' =None, deployment_persistent_disk: 'bool' =None, drive_v2: 'bool' =None, enterprise_compute_admin: 'bool' =None, f227: 'bool' =None, f234: 'bool' =None, f236: 'bool' =None, f237: 'bool' =None, f238: 'bool' =None, f239: 'bool' =None, f240: 'bool' =None, f241: 'bool' =None, f242: 'bool' =None, f243: 'bool' =None, f245: 'bool' =None, fair_share: 'bool' =None, featured_studios_admin: 'bool' =None, gcp_overprovisioning: 'bool' =None, gcs_connections_optimized: 'bool' =None, gcs_folders: 'bool' =None, instant_capacity_reservation: 'bool' =None, job_artifacts_v2: 'bool' =None, kubernetes_cluster_ui: 'bool' =None, kubernetes_clusters: 'bool' =None, landing_studios: 'bool' =None, lit_logger: 'bool' =None, marketplace: 'bool' =None, mmt_fault_tolerance: 'bool' =None, mmt_strategy_selector: 'bool' =None, model_api_dashboard: 'bool' =None, multiple_studio_versions: 'bool' =None, nerf_fs_nonpaying: 'bool' =None, onboarding_v2: '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, pricing_updates: '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, single_wallet: 'bool' =None, slurm: 'bool' =None, specialised_studios: 'bool' =None, storage_overuse_deletion: 'bool' =None, studio_config: 'bool' =None, studio_sharing_v2: 'bool' =None, studio_version_visibility: 'bool' =None, trainium2: 'bool' =None, use_rclone_mounts_only: 'bool' =None, vultr: 'bool' =None, weka: 'bool' =None, writable_s3_connections: 'bool' =None): # noqa: E501
224
216
  """V1UserFeatures - a model defined in Swagger""" # noqa: E501
225
- self._add_data_v2 = None
226
217
  self._affiliate_links = None
227
218
  self._agents_v2 = None
228
219
  self._ai_hub_monetization = None
@@ -256,7 +247,6 @@ class V1UserFeatures(object):
256
247
  self._f241 = None
257
248
  self._f242 = None
258
249
  self._f243 = None
259
- self._f244 = None
260
250
  self._f245 = None
261
251
  self._fair_share = None
262
252
  self._featured_studios_admin = None
@@ -290,7 +280,6 @@ class V1UserFeatures(object):
290
280
  self._product_license = None
291
281
  self._project_selector = None
292
282
  self._publish_pipelines = None
293
- self._r2_data_connections = None
294
283
  self._reserved_machines_tab = None
295
284
  self._restartable_jobs = None
296
285
  self._runnable_public_studio_page = None
@@ -304,14 +293,11 @@ class V1UserFeatures(object):
304
293
  self._studio_sharing_v2 = None
305
294
  self._studio_version_visibility = None
306
295
  self._trainium2 = None
307
- self._use_internal_data_connection_mounts = None
308
296
  self._use_rclone_mounts_only = None
309
297
  self._vultr = None
310
298
  self._weka = None
311
299
  self._writable_s3_connections = None
312
300
  self.discriminator = None
313
- if add_data_v2 is not None:
314
- self.add_data_v2 = add_data_v2
315
301
  if affiliate_links is not None:
316
302
  self.affiliate_links = affiliate_links
317
303
  if agents_v2 is not None:
@@ -378,8 +364,6 @@ class V1UserFeatures(object):
378
364
  self.f242 = f242
379
365
  if f243 is not None:
380
366
  self.f243 = f243
381
- if f244 is not None:
382
- self.f244 = f244
383
367
  if f245 is not None:
384
368
  self.f245 = f245
385
369
  if fair_share is not None:
@@ -446,8 +430,6 @@ class V1UserFeatures(object):
446
430
  self.project_selector = project_selector
447
431
  if publish_pipelines is not None:
448
432
  self.publish_pipelines = publish_pipelines
449
- if r2_data_connections is not None:
450
- self.r2_data_connections = r2_data_connections
451
433
  if reserved_machines_tab is not None:
452
434
  self.reserved_machines_tab = reserved_machines_tab
453
435
  if restartable_jobs is not None:
@@ -474,8 +456,6 @@ class V1UserFeatures(object):
474
456
  self.studio_version_visibility = studio_version_visibility
475
457
  if trainium2 is not None:
476
458
  self.trainium2 = trainium2
477
- if use_internal_data_connection_mounts is not None:
478
- self.use_internal_data_connection_mounts = use_internal_data_connection_mounts
479
459
  if use_rclone_mounts_only is not None:
480
460
  self.use_rclone_mounts_only = use_rclone_mounts_only
481
461
  if vultr is not None:
@@ -485,27 +465,6 @@ class V1UserFeatures(object):
485
465
  if writable_s3_connections is not None:
486
466
  self.writable_s3_connections = writable_s3_connections
487
467
 
488
- @property
489
- def add_data_v2(self) -> 'bool':
490
- """Gets the add_data_v2 of this V1UserFeatures. # noqa: E501
491
-
492
-
493
- :return: The add_data_v2 of this V1UserFeatures. # noqa: E501
494
- :rtype: bool
495
- """
496
- return self._add_data_v2
497
-
498
- @add_data_v2.setter
499
- def add_data_v2(self, add_data_v2: 'bool'):
500
- """Sets the add_data_v2 of this V1UserFeatures.
501
-
502
-
503
- :param add_data_v2: The add_data_v2 of this V1UserFeatures. # noqa: E501
504
- :type: bool
505
- """
506
-
507
- self._add_data_v2 = add_data_v2
508
-
509
468
  @property
510
469
  def affiliate_links(self) -> 'bool':
511
470
  """Gets the affiliate_links of this V1UserFeatures. # noqa: E501
@@ -1199,27 +1158,6 @@ class V1UserFeatures(object):
1199
1158
 
1200
1159
  self._f243 = f243
1201
1160
 
1202
- @property
1203
- def f244(self) -> 'bool':
1204
- """Gets the f244 of this V1UserFeatures. # noqa: E501
1205
-
1206
-
1207
- :return: The f244 of this V1UserFeatures. # noqa: E501
1208
- :rtype: bool
1209
- """
1210
- return self._f244
1211
-
1212
- @f244.setter
1213
- def f244(self, f244: 'bool'):
1214
- """Sets the f244 of this V1UserFeatures.
1215
-
1216
-
1217
- :param f244: The f244 of this V1UserFeatures. # noqa: E501
1218
- :type: bool
1219
- """
1220
-
1221
- self._f244 = f244
1222
-
1223
1161
  @property
1224
1162
  def f245(self) -> 'bool':
1225
1163
  """Gets the f245 of this V1UserFeatures. # noqa: E501
@@ -1913,27 +1851,6 @@ class V1UserFeatures(object):
1913
1851
 
1914
1852
  self._publish_pipelines = publish_pipelines
1915
1853
 
1916
- @property
1917
- def r2_data_connections(self) -> 'bool':
1918
- """Gets the r2_data_connections of this V1UserFeatures. # noqa: E501
1919
-
1920
-
1921
- :return: The r2_data_connections of this V1UserFeatures. # noqa: E501
1922
- :rtype: bool
1923
- """
1924
- return self._r2_data_connections
1925
-
1926
- @r2_data_connections.setter
1927
- def r2_data_connections(self, r2_data_connections: 'bool'):
1928
- """Sets the r2_data_connections of this V1UserFeatures.
1929
-
1930
-
1931
- :param r2_data_connections: The r2_data_connections of this V1UserFeatures. # noqa: E501
1932
- :type: bool
1933
- """
1934
-
1935
- self._r2_data_connections = r2_data_connections
1936
-
1937
1854
  @property
1938
1855
  def reserved_machines_tab(self) -> 'bool':
1939
1856
  """Gets the reserved_machines_tab of this V1UserFeatures. # noqa: E501
@@ -2207,27 +2124,6 @@ class V1UserFeatures(object):
2207
2124
 
2208
2125
  self._trainium2 = trainium2
2209
2126
 
2210
- @property
2211
- def use_internal_data_connection_mounts(self) -> 'bool':
2212
- """Gets the use_internal_data_connection_mounts of this V1UserFeatures. # noqa: E501
2213
-
2214
-
2215
- :return: The use_internal_data_connection_mounts of this V1UserFeatures. # noqa: E501
2216
- :rtype: bool
2217
- """
2218
- return self._use_internal_data_connection_mounts
2219
-
2220
- @use_internal_data_connection_mounts.setter
2221
- def use_internal_data_connection_mounts(self, use_internal_data_connection_mounts: 'bool'):
2222
- """Sets the use_internal_data_connection_mounts of this V1UserFeatures.
2223
-
2224
-
2225
- :param use_internal_data_connection_mounts: The use_internal_data_connection_mounts of this V1UserFeatures. # noqa: E501
2226
- :type: bool
2227
- """
2228
-
2229
- self._use_internal_data_connection_mounts = use_internal_data_connection_mounts
2230
-
2231
2127
  @property
2232
2128
  def use_rclone_mounts_only(self) -> 'bool':
2233
2129
  """Gets the use_rclone_mounts_only of this V1UserFeatures. # noqa: E501
lightning_sdk/studio.py CHANGED
@@ -81,7 +81,6 @@ class Studio:
81
81
  raise ValueError("Couldn't resolve teamspace from the provided name, org, or user")
82
82
 
83
83
  self._teamspace = _teamspace
84
- self._cloud_account = _resolve_deprecated_cluster(cloud_account, cluster)
85
84
 
86
85
  self._setup_done = self._skip_setup
87
86
  self._disable_secrets = disable_secrets
@@ -23,6 +23,9 @@ class DefaultConfigKeys:
23
23
 
24
24
  studio: str = "studio.name"
25
25
 
26
+ cloud_account: str = "cloud_account.name"
27
+ cloud_provider: str = "cloud_provider.name"
28
+
26
29
 
27
30
  class ConfigProxy:
28
31
  def __init__(self, root: "Config", *path: str) -> None:
@@ -66,6 +66,12 @@ def _resolve_deprecated_provider(
66
66
  )
67
67
  return provider
68
68
 
69
+ if cloud_provider is None:
70
+ from lightning_sdk.utils.config import Config, DefaultConfigKeys
71
+
72
+ config = Config()
73
+ cloud_provider = config.get_value(DefaultConfigKeys.cloud_provider)
74
+
69
75
  return cloud_provider
70
76
 
71
77
 
@@ -84,6 +90,12 @@ def _resolve_deprecated_cluster(cloud_account: Optional[str], cluster: Optional[
84
90
  )
85
91
  return cluster
86
92
 
93
+ if cloud_account is None:
94
+ from lightning_sdk.utils.config import Config, DefaultConfigKeys
95
+
96
+ config = Config()
97
+ cloud_account = config.get_value(DefaultConfigKeys.cloud_account)
98
+
87
99
  return cloud_account
88
100
 
89
101