lightning-sdk 2025.12.17__py3-none-any.whl → 2026.1.27__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 (130) hide show
  1. lightning_sdk/__version__.py +1 -1
  2. lightning_sdk/api/k8s_api.py +75 -29
  3. lightning_sdk/api/studio_api.py +192 -37
  4. lightning_sdk/api/teamspace_api.py +180 -54
  5. lightning_sdk/api/utils.py +8 -0
  6. lightning_sdk/cli/cp/__init__.py +67 -0
  7. lightning_sdk/cli/cp/teamspace_uploads.py +93 -0
  8. lightning_sdk/cli/entrypoint.py +2 -0
  9. lightning_sdk/cli/groups.py +22 -0
  10. lightning_sdk/cli/legacy/clusters_menu.py +2 -2
  11. lightning_sdk/cli/legacy/deploy/_auth.py +7 -6
  12. lightning_sdk/cli/legacy/download.py +29 -98
  13. lightning_sdk/cli/legacy/run.py +13 -2
  14. lightning_sdk/cli/legacy/upload.py +24 -31
  15. lightning_sdk/cli/studio/__init__.py +4 -0
  16. lightning_sdk/cli/studio/cp.py +24 -65
  17. lightning_sdk/cli/studio/ls.py +57 -0
  18. lightning_sdk/cli/studio/rm.py +71 -0
  19. lightning_sdk/cli/utils/filesystem.py +103 -0
  20. lightning_sdk/cli/utils/logging.py +2 -1
  21. lightning_sdk/cli/utils/teamspace_selection.py +5 -0
  22. lightning_sdk/exceptions.py +31 -0
  23. lightning_sdk/job/base.py +1 -1
  24. lightning_sdk/k8s_cluster.py +9 -10
  25. lightning_sdk/lightning_cloud/__version__.py +1 -1
  26. lightning_sdk/lightning_cloud/openapi/__init__.py +43 -23
  27. lightning_sdk/lightning_cloud/openapi/api/__init__.py +2 -1
  28. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +118 -1
  29. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +378 -536
  30. lightning_sdk/lightning_cloud/openapi/api/container_registry_service_api.py +456 -0
  31. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +5 -1
  32. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +11 -11
  33. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +113 -0
  34. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +246 -19
  35. lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py +116 -11
  36. lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +588 -2
  37. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +9 -1
  38. lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +113 -0
  39. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +5 -1
  40. lightning_sdk/lightning_cloud/openapi/api/{kubernetes_virtual_machine_service_api.py → virtual_machine_service_api.py} +82 -82
  41. lightning_sdk/lightning_cloud/openapi/models/__init__.py +41 -22
  42. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_cluster_capacity_reservation_body.py +53 -1
  43. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_machine_body.py +53 -1
  44. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_org_cluster_capacity_reservation_body.py +409 -0
  45. lightning_sdk/lightning_cloud/openapi/models/{v1_add_container_registry_response.py → cluster_service_report_machine_system_metrics_body.py} +23 -23
  46. lightning_sdk/lightning_cloud/openapi/models/container_registry_config_ecr.py +149 -0
  47. lightning_sdk/lightning_cloud/openapi/models/{v1_container_registry_status.py → container_registry_provider.py} +14 -10
  48. lightning_sdk/lightning_cloud/openapi/models/container_registry_service_create_container_registry_body.py +201 -0
  49. lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_config_input.py → container_registry_service_refresh_container_registry_credentials_body.py} +21 -21
  50. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +27 -1
  51. lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_config.py → jobs_service_duplicate_deployment_body.py} +51 -51
  52. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_create_lit_logger_media_body.py +305 -0
  53. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_lit_logger_media_body.py +149 -0
  54. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_metrics_stream_body.py +53 -1
  55. lightning_sdk/lightning_cloud/openapi/models/organizations_service_update_org_role_body.py +175 -0
  56. lightning_sdk/lightning_cloud/openapi/models/v1_capacity_reservation_used_by.py +227 -0
  57. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +2 -1
  58. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_type.py +1 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  60. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +53 -1
  61. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +79 -27
  62. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +0 -1
  63. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry.py +63 -89
  64. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_add_container_registry_body.py → v1_container_registry_config.py} +16 -16
  65. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_scopes.py +149 -0
  66. lightning_sdk/lightning_cloud/openapi/models/{v1_delete_kubernetes_virtual_machine_response.py → v1_create_container_registry_response.py} +6 -6
  67. lightning_sdk/lightning_cloud/openapi/models/v1_create_lit_logger_media_response.py +149 -0
  68. lightning_sdk/lightning_cloud/openapi/models/v1_create_org_cluster_capacity_reservation_response.py +201 -0
  69. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_request.py +29 -3
  70. lightning_sdk/lightning_cloud/openapi/models/v1_cudo_direct_v1.py +175 -0
  71. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_refresh_container_registry_credentials_body.py → v1_delete_lit_logger_media_response.py} +6 -6
  72. lightning_sdk/lightning_cloud/openapi/models/{kubernetes_virtual_machine_service_update_kubernetes_virtual_machine_body.py → v1_delete_org_cluster_capacity_reservation_response.py} +6 -6
  73. lightning_sdk/lightning_cloud/openapi/models/v1_delete_virtual_machine_response.py +97 -0
  74. lightning_sdk/lightning_cloud/openapi/models/v1_describe_org_cluster_capacity_reservation_response.py +201 -0
  75. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -27
  76. lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +27 -1
  77. lightning_sdk/lightning_cloud/openapi/models/v1_generic_job_spec.py +79 -1
  78. lightning_sdk/lightning_cloud/openapi/models/{v1_validate_container_registry_response.py → v1_get_kubernetes_pod_logs_response.py} +37 -37
  79. lightning_sdk/lightning_cloud/openapi/models/{v1_get_machine_response.py → v1_get_kubernetes_pod_response.py} +23 -23
  80. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +27 -1
  81. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  82. lightning_sdk/lightning_cloud/openapi/models/v1_joinable_organization.py +27 -1
  83. lightning_sdk/lightning_cloud/openapi/models/{v1_container_registry_integration.py → v1_k8s_incident_setting.py} +49 -23
  84. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_type.py +108 -0
  85. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_settings_v1.py +53 -1
  86. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +53 -27
  87. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod.py +27 -1
  88. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod_logs_page.py +227 -0
  89. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_config.py +53 -1
  90. lightning_sdk/lightning_cloud/openapi/models/v1_list_container_registries_response.py +6 -6
  91. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_response.py +43 -17
  92. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_sort_order.py +104 -0
  93. lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_logger_media_response.py +149 -0
  94. lightning_sdk/lightning_cloud/openapi/models/v1_list_models_response.py +55 -3
  95. lightning_sdk/lightning_cloud/openapi/models/{v1_list_kubernetes_virtual_machines_response.py → v1_list_virtual_machines_response.py} +16 -16
  96. lightning_sdk/lightning_cloud/openapi/models/v1_lit_logger_media.py +513 -0
  97. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +27 -53
  98. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +107 -3
  99. lightning_sdk/lightning_cloud/openapi/models/v1_media_type.py +104 -0
  100. lightning_sdk/lightning_cloud/openapi/models/{v1_ai_pod_v1.py → v1_mithril_direct_v1.py} +51 -51
  101. lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py +29 -3
  102. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +27 -1
  103. lightning_sdk/lightning_cloud/openapi/models/v1_refresh_container_registry_credentials_response.py +1 -27
  104. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_validate_container_registry_body.py → v1_report_cloud_space_instance_idle_state_response.py} +6 -6
  105. lightning_sdk/lightning_cloud/openapi/models/v1_report_machine_system_metrics_response.py +97 -0
  106. lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_details.py → v1_tenant_credentials.py} +53 -53
  107. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +183 -157
  108. lightning_sdk/lightning_cloud/openapi/models/{v1_kubernetes_virtual_machine.py → v1_virtual_machine.py} +94 -68
  109. lightning_sdk/lightning_cloud/openapi/models/{v1_kubevirt_vm_configuration.py → v1_vm_configuration.py} +20 -20
  110. lightning_sdk/lightning_cloud/openapi/models/{v1_kubevirt_provider_configuration.py → v1_vm_provider_configuration.py} +32 -32
  111. lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_create_virtual_machine_body.py +565 -0
  112. lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_update_virtual_machine_body.py +97 -0
  113. lightning_sdk/lightning_cloud/openapi/rest.py +2 -2
  114. lightning_sdk/lightning_cloud/rest_client.py +0 -2
  115. lightning_sdk/machine.py +3 -3
  116. lightning_sdk/studio.py +14 -4
  117. lightning_sdk/teamspace.py +28 -7
  118. lightning_sdk/utils/logging.py +2 -1
  119. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/METADATA +1 -5
  120. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/RECORD +125 -102
  121. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/WHEEL +1 -1
  122. lightning_sdk/lightning_cloud/cli/__main__.py +0 -29
  123. lightning_sdk/lightning_cloud/openapi/models/kubernetes_virtual_machine_service_create_kubernetes_virtual_machine_body.py +0 -513
  124. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_info.py +0 -281
  125. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_vm_resources.py +0 -201
  126. lightning_sdk/lightning_cloud/source_code/logs_socket_api.py +0 -103
  127. /lightning_sdk/lightning_cloud/openapi/models/{v1_list_filesystem_mmts_response.py → v1_list_filesystem_mm_ts_response.py} +0 -0
  128. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/LICENSE +0 -0
  129. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/entry_points.txt +0 -0
  130. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/top_level.txt +0 -0
@@ -1741,6 +1741,8 @@ class ModelsStoreApi(object):
1741
1741
  :param async_req bool
1742
1742
  :param str project_id: (required)
1743
1743
  :param str name:
1744
+ :param str page_token:
1745
+ :param int limit:
1744
1746
  :return: V1ListModelsResponse
1745
1747
  If the method is called asynchronously,
1746
1748
  returns the request thread.
@@ -1763,12 +1765,14 @@ class ModelsStoreApi(object):
1763
1765
  :param async_req bool
1764
1766
  :param str project_id: (required)
1765
1767
  :param str name:
1768
+ :param str page_token:
1769
+ :param int limit:
1766
1770
  :return: V1ListModelsResponse
1767
1771
  If the method is called asynchronously,
1768
1772
  returns the request thread.
1769
1773
  """
1770
1774
 
1771
- all_params = ['project_id', 'name'] # noqa: E501
1775
+ all_params = ['project_id', 'name', 'page_token', 'limit'] # noqa: E501
1772
1776
  all_params.append('async_req')
1773
1777
  all_params.append('_return_http_data_only')
1774
1778
  all_params.append('_preload_content')
@@ -1797,6 +1801,10 @@ class ModelsStoreApi(object):
1797
1801
  query_params = []
1798
1802
  if 'name' in params:
1799
1803
  query_params.append(('name', params['name'])) # noqa: E501
1804
+ if 'page_token' in params:
1805
+ query_params.append(('pageToken', params['page_token'])) # noqa: E501
1806
+ if 'limit' in params:
1807
+ query_params.append(('limit', params['limit'])) # noqa: E501
1800
1808
 
1801
1809
  header_params = {}
1802
1810
 
@@ -1950,6 +1950,119 @@ class OrganizationsServiceApi(object):
1950
1950
  _request_timeout=params.get('_request_timeout'),
1951
1951
  collection_formats=collection_formats)
1952
1952
 
1953
+ def organizations_service_update_org_role(self, body: 'OrganizationsServiceUpdateOrgRoleBody', org_id: 'str', id: 'str', **kwargs) -> 'V1OrgRole': # noqa: E501
1954
+ """organizations_service_update_org_role # noqa: E501
1955
+
1956
+ This method makes a synchronous HTTP request by default. To make an
1957
+ asynchronous HTTP request, please pass async_req=True
1958
+ >>> thread = api.organizations_service_update_org_role(body, org_id, id, async_req=True)
1959
+ >>> result = thread.get()
1960
+
1961
+ :param async_req bool
1962
+ :param OrganizationsServiceUpdateOrgRoleBody body: (required)
1963
+ :param str org_id: (required)
1964
+ :param str id: (required)
1965
+ :return: V1OrgRole
1966
+ If the method is called asynchronously,
1967
+ returns the request thread.
1968
+ """
1969
+ kwargs['_return_http_data_only'] = True
1970
+ if kwargs.get('async_req'):
1971
+ return self.organizations_service_update_org_role_with_http_info(body, org_id, id, **kwargs) # noqa: E501
1972
+ else:
1973
+ (data) = self.organizations_service_update_org_role_with_http_info(body, org_id, id, **kwargs) # noqa: E501
1974
+ return data
1975
+
1976
+ def organizations_service_update_org_role_with_http_info(self, body: 'OrganizationsServiceUpdateOrgRoleBody', org_id: 'str', id: 'str', **kwargs) -> 'V1OrgRole': # noqa: E501
1977
+ """organizations_service_update_org_role # noqa: E501
1978
+
1979
+ This method makes a synchronous HTTP request by default. To make an
1980
+ asynchronous HTTP request, please pass async_req=True
1981
+ >>> thread = api.organizations_service_update_org_role_with_http_info(body, org_id, id, async_req=True)
1982
+ >>> result = thread.get()
1983
+
1984
+ :param async_req bool
1985
+ :param OrganizationsServiceUpdateOrgRoleBody body: (required)
1986
+ :param str org_id: (required)
1987
+ :param str id: (required)
1988
+ :return: V1OrgRole
1989
+ If the method is called asynchronously,
1990
+ returns the request thread.
1991
+ """
1992
+
1993
+ all_params = ['body', 'org_id', 'id'] # noqa: E501
1994
+ all_params.append('async_req')
1995
+ all_params.append('_return_http_data_only')
1996
+ all_params.append('_preload_content')
1997
+ all_params.append('_request_timeout')
1998
+
1999
+ params = locals()
2000
+ for key, val in six.iteritems(params['kwargs']):
2001
+ if key not in all_params:
2002
+ raise TypeError(
2003
+ "Got an unexpected keyword argument '%s'"
2004
+ " to method organizations_service_update_org_role" % key
2005
+ )
2006
+ params[key] = val
2007
+ del params['kwargs']
2008
+ # verify the required parameter 'body' is set
2009
+ if ('body' not in params or
2010
+ params['body'] is None):
2011
+ raise ValueError("Missing the required parameter `body` when calling `organizations_service_update_org_role`") # noqa: E501
2012
+ # verify the required parameter 'org_id' is set
2013
+ if ('org_id' not in params or
2014
+ params['org_id'] is None):
2015
+ raise ValueError("Missing the required parameter `org_id` when calling `organizations_service_update_org_role`") # noqa: E501
2016
+ # verify the required parameter 'id' is set
2017
+ if ('id' not in params or
2018
+ params['id'] is None):
2019
+ raise ValueError("Missing the required parameter `id` when calling `organizations_service_update_org_role`") # noqa: E501
2020
+
2021
+ collection_formats = {}
2022
+
2023
+ path_params = {}
2024
+ if 'org_id' in params:
2025
+ path_params['orgId'] = params['org_id'] # noqa: E501
2026
+ if 'id' in params:
2027
+ path_params['id'] = params['id'] # noqa: E501
2028
+
2029
+ query_params = []
2030
+
2031
+ header_params = {}
2032
+
2033
+ form_params = []
2034
+ local_var_files = {}
2035
+
2036
+ body_params = None
2037
+ if 'body' in params:
2038
+ body_params = params['body']
2039
+ # HTTP header `Accept`
2040
+ header_params['Accept'] = self.api_client.select_header_accept(
2041
+ ['application/json']) # noqa: E501
2042
+
2043
+ # HTTP header `Content-Type`
2044
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
2045
+ ['application/json']) # noqa: E501
2046
+
2047
+ # Authentication setting
2048
+ auth_settings = [] # noqa: E501
2049
+
2050
+ return self.api_client.call_api(
2051
+ '/v1/orgs/{orgId}/roles/{id}', 'PUT',
2052
+ path_params,
2053
+ query_params,
2054
+ header_params,
2055
+ body=body_params,
2056
+ post_params=form_params,
2057
+ files=local_var_files,
2058
+ response_type='V1OrgRole', # noqa: E501
2059
+ auth_settings=auth_settings,
2060
+ async_req=params.get('async_req'),
2061
+ _return_http_data_only=params.get('_return_http_data_only'),
2062
+ _preload_content=params.get('_preload_content', True),
2063
+ _request_timeout=params.get('_request_timeout'),
2064
+ collection_formats=collection_formats)
2065
+
1953
2066
  def organizations_service_update_organization(self, body: 'OrganizationsServiceUpdateOrganizationBody', id: 'str', **kwargs) -> 'V1Organization': # noqa: E501
1954
2067
  """Update organization # noqa: E501
1955
2068
 
@@ -872,6 +872,7 @@ class StorageServiceApi(object):
872
872
  :param str cluster_id:
873
873
  :param bool local_index: if true, fetch from the local index
874
874
  :param bool include_folder_index: if true, include the folder index in the response
875
+ :param bool only_direct_children: if true, only include direct children of the prefix
875
876
  :return: V1GetArtifactsPageResponse
876
877
  If the method is called asynchronously,
877
878
  returns the request thread.
@@ -900,12 +901,13 @@ class StorageServiceApi(object):
900
901
  :param str cluster_id:
901
902
  :param bool local_index: if true, fetch from the local index
902
903
  :param bool include_folder_index: if true, include the folder index in the response
904
+ :param bool only_direct_children: if true, only include direct children of the prefix
903
905
  :return: V1GetArtifactsPageResponse
904
906
  If the method is called asynchronously,
905
907
  returns the request thread.
906
908
  """
907
909
 
908
- all_params = ['project_id', 'id', 'page_number', 'prefix', 'include_download_url', 'cluster_id', 'local_index', 'include_folder_index'] # noqa: E501
910
+ all_params = ['project_id', 'id', 'page_number', 'prefix', 'include_download_url', 'cluster_id', 'local_index', 'include_folder_index', 'only_direct_children'] # noqa: E501
909
911
  all_params.append('async_req')
910
912
  all_params.append('_return_http_data_only')
911
913
  all_params.append('_preload_content')
@@ -946,6 +948,8 @@ class StorageServiceApi(object):
946
948
  query_params.append(('localIndex', params['local_index'])) # noqa: E501
947
949
  if 'include_folder_index' in params:
948
950
  query_params.append(('includeFolderIndex', params['include_folder_index'])) # noqa: E501
951
+ if 'only_direct_children' in params:
952
+ query_params.append(('onlyDirectChildren', params['only_direct_children'])) # noqa: E501
949
953
 
950
954
  header_params = {}
951
955