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
@@ -3074,6 +3074,7 @@ class CloudSpaceServiceApi(object):
3074
3074
  :param str cluster_id:
3075
3075
  :param bool local_index: if true, fetch from the local index
3076
3076
  :param bool include_folder_index: if true, include the folder index in the response
3077
+ :param bool only_direct_children: if true, only include direct children of the prefix
3077
3078
  :return: V1GetArtifactsPageResponse
3078
3079
  If the method is called asynchronously,
3079
3080
  returns the request thread.
@@ -3102,12 +3103,13 @@ class CloudSpaceServiceApi(object):
3102
3103
  :param str cluster_id:
3103
3104
  :param bool local_index: if true, fetch from the local index
3104
3105
  :param bool include_folder_index: if true, include the folder index in the response
3106
+ :param bool only_direct_children: if true, only include direct children of the prefix
3105
3107
  :return: V1GetArtifactsPageResponse
3106
3108
  If the method is called asynchronously,
3107
3109
  returns the request thread.
3108
3110
  """
3109
3111
 
3110
- all_params = ['project_id', 'id', 'page_number', 'prefix', 'include_download_url', 'cluster_id', 'local_index', 'include_folder_index'] # noqa: E501
3112
+ all_params = ['project_id', 'id', 'page_number', 'prefix', 'include_download_url', 'cluster_id', 'local_index', 'include_folder_index', 'only_direct_children'] # noqa: E501
3111
3113
  all_params.append('async_req')
3112
3114
  all_params.append('_return_http_data_only')
3113
3115
  all_params.append('_preload_content')
@@ -3152,6 +3154,8 @@ class CloudSpaceServiceApi(object):
3152
3154
  query_params.append(('localIndex', params['local_index'])) # noqa: E501
3153
3155
  if 'include_folder_index' in params:
3154
3156
  query_params.append(('includeFolderIndex', params['include_folder_index'])) # noqa: E501
3157
+ if 'only_direct_children' in params:
3158
+ query_params.append(('onlyDirectChildren', params['only_direct_children'])) # noqa: E501
3155
3159
 
3156
3160
  header_params = {}
3157
3161
 
@@ -7542,6 +7546,119 @@ class CloudSpaceServiceApi(object):
7542
7546
  _request_timeout=params.get('_request_timeout'),
7543
7547
  collection_formats=collection_formats)
7544
7548
 
7549
+ def cloud_space_service_report_cloud_space_instance_idle_state(self, project_id: 'str', cloudspace_id: 'str', **kwargs) -> 'V1ReportCloudSpaceInstanceIdleStateResponse': # noqa: E501
7550
+ """cloud_space_service_report_cloud_space_instance_idle_state # noqa: E501
7551
+
7552
+ This method makes a synchronous HTTP request by default. To make an
7553
+ asynchronous HTTP request, please pass async_req=True
7554
+ >>> thread = api.cloud_space_service_report_cloud_space_instance_idle_state(project_id, cloudspace_id, async_req=True)
7555
+ >>> result = thread.get()
7556
+
7557
+ :param async_req bool
7558
+ :param str project_id: (required)
7559
+ :param str cloudspace_id: (required)
7560
+ :param str cloudspace_instance_id:
7561
+ :param bool is_idle:
7562
+ :param datetime timestamp:
7563
+ :return: V1ReportCloudSpaceInstanceIdleStateResponse
7564
+ If the method is called asynchronously,
7565
+ returns the request thread.
7566
+ """
7567
+ kwargs['_return_http_data_only'] = True
7568
+ if kwargs.get('async_req'):
7569
+ return self.cloud_space_service_report_cloud_space_instance_idle_state_with_http_info(project_id, cloudspace_id, **kwargs) # noqa: E501
7570
+ else:
7571
+ (data) = self.cloud_space_service_report_cloud_space_instance_idle_state_with_http_info(project_id, cloudspace_id, **kwargs) # noqa: E501
7572
+ return data
7573
+
7574
+ def cloud_space_service_report_cloud_space_instance_idle_state_with_http_info(self, project_id: 'str', cloudspace_id: 'str', **kwargs) -> 'V1ReportCloudSpaceInstanceIdleStateResponse': # noqa: E501
7575
+ """cloud_space_service_report_cloud_space_instance_idle_state # noqa: E501
7576
+
7577
+ This method makes a synchronous HTTP request by default. To make an
7578
+ asynchronous HTTP request, please pass async_req=True
7579
+ >>> thread = api.cloud_space_service_report_cloud_space_instance_idle_state_with_http_info(project_id, cloudspace_id, async_req=True)
7580
+ >>> result = thread.get()
7581
+
7582
+ :param async_req bool
7583
+ :param str project_id: (required)
7584
+ :param str cloudspace_id: (required)
7585
+ :param str cloudspace_instance_id:
7586
+ :param bool is_idle:
7587
+ :param datetime timestamp:
7588
+ :return: V1ReportCloudSpaceInstanceIdleStateResponse
7589
+ If the method is called asynchronously,
7590
+ returns the request thread.
7591
+ """
7592
+
7593
+ all_params = ['project_id', 'cloudspace_id', 'cloudspace_instance_id', 'is_idle', 'timestamp'] # noqa: E501
7594
+ all_params.append('async_req')
7595
+ all_params.append('_return_http_data_only')
7596
+ all_params.append('_preload_content')
7597
+ all_params.append('_request_timeout')
7598
+
7599
+ params = locals()
7600
+ for key, val in six.iteritems(params['kwargs']):
7601
+ if key not in all_params:
7602
+ raise TypeError(
7603
+ "Got an unexpected keyword argument '%s'"
7604
+ " to method cloud_space_service_report_cloud_space_instance_idle_state" % key
7605
+ )
7606
+ params[key] = val
7607
+ del params['kwargs']
7608
+ # verify the required parameter 'project_id' is set
7609
+ if ('project_id' not in params or
7610
+ params['project_id'] is None):
7611
+ raise ValueError("Missing the required parameter `project_id` when calling `cloud_space_service_report_cloud_space_instance_idle_state`") # noqa: E501
7612
+ # verify the required parameter 'cloudspace_id' is set
7613
+ if ('cloudspace_id' not in params or
7614
+ params['cloudspace_id'] is None):
7615
+ raise ValueError("Missing the required parameter `cloudspace_id` when calling `cloud_space_service_report_cloud_space_instance_idle_state`") # noqa: E501
7616
+
7617
+ collection_formats = {}
7618
+
7619
+ path_params = {}
7620
+ if 'project_id' in params:
7621
+ path_params['projectId'] = params['project_id'] # noqa: E501
7622
+ if 'cloudspace_id' in params:
7623
+ path_params['cloudspaceId'] = params['cloudspace_id'] # noqa: E501
7624
+
7625
+ query_params = []
7626
+ if 'cloudspace_instance_id' in params:
7627
+ query_params.append(('cloudspaceInstanceId', params['cloudspace_instance_id'])) # noqa: E501
7628
+ if 'is_idle' in params:
7629
+ query_params.append(('isIdle', params['is_idle'])) # noqa: E501
7630
+ if 'timestamp' in params:
7631
+ query_params.append(('timestamp', params['timestamp'])) # noqa: E501
7632
+
7633
+ header_params = {}
7634
+
7635
+ form_params = []
7636
+ local_var_files = {}
7637
+
7638
+ body_params = None
7639
+ # HTTP header `Accept`
7640
+ header_params['Accept'] = self.api_client.select_header_accept(
7641
+ ['application/json']) # noqa: E501
7642
+
7643
+ # Authentication setting
7644
+ auth_settings = [] # noqa: E501
7645
+
7646
+ return self.api_client.call_api(
7647
+ '/v1/projects/{projectId}/cloudspaces/{cloudspaceId}/report-idle-state', 'GET',
7648
+ path_params,
7649
+ query_params,
7650
+ header_params,
7651
+ body=body_params,
7652
+ post_params=form_params,
7653
+ files=local_var_files,
7654
+ response_type='V1ReportCloudSpaceInstanceIdleStateResponse', # noqa: E501
7655
+ auth_settings=auth_settings,
7656
+ async_req=params.get('async_req'),
7657
+ _return_http_data_only=params.get('_return_http_data_only'),
7658
+ _preload_content=params.get('_preload_content', True),
7659
+ _request_timeout=params.get('_request_timeout'),
7660
+ collection_formats=collection_formats)
7661
+
7545
7662
  def cloud_space_service_report_cloud_space_instance_stop_at(self, project_id: 'str', cloudspace_id: 'str', **kwargs) -> 'V1ReportCloudSpaceInstanceStopAtResponse': # noqa: E501
7546
7663
  """cloud_space_service_report_cloud_space_instance_stop_at # noqa: E501
7547
7664