lightning-sdk 2025.7.17__py3-none-any.whl → 2025.7.22__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 (68) hide show
  1. lightning_sdk/__init__.py +3 -2
  2. lightning_sdk/api/cloud_account_api.py +154 -0
  3. lightning_sdk/api/deployment_api.py +11 -0
  4. lightning_sdk/api/job_api.py +9 -0
  5. lightning_sdk/api/mmt_api.py +9 -0
  6. lightning_sdk/api/pipeline_api.py +4 -3
  7. lightning_sdk/api/studio_api.py +19 -5
  8. lightning_sdk/cli/clusters_menu.py +3 -3
  9. lightning_sdk/cli/create.py +22 -10
  10. lightning_sdk/cli/deploy/_auth.py +19 -3
  11. lightning_sdk/cli/deploy/serve.py +18 -4
  12. lightning_sdk/cli/entrypoint.py +1 -1
  13. lightning_sdk/cli/start.py +37 -7
  14. lightning_sdk/deployment/deployment.py +8 -0
  15. lightning_sdk/job/base.py +27 -3
  16. lightning_sdk/job/job.py +28 -4
  17. lightning_sdk/job/v1.py +10 -1
  18. lightning_sdk/job/v2.py +15 -1
  19. lightning_sdk/lightning_cloud/openapi/__init__.py +9 -1
  20. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +335 -0
  21. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +153 -48
  22. lightning_sdk/lightning_cloud/openapi/models/__init__.py +9 -1
  23. lightning_sdk/lightning_cloud/openapi/models/blogposts_id_body.py +53 -1
  24. lightning_sdk/lightning_cloud/openapi/models/conversations_id_body1.py +123 -0
  25. lightning_sdk/lightning_cloud/openapi/models/messages_id_body.py +123 -0
  26. lightning_sdk/lightning_cloud/openapi/models/project_id_schedules_body.py +29 -3
  27. lightning_sdk/lightning_cloud/openapi/models/schedules_id_body.py +27 -1
  28. lightning_sdk/lightning_cloud/openapi/models/user_id_upgradetrigger_body.py +175 -0
  29. lightning_sdk/lightning_cloud/openapi/models/v1_blog_post.py +53 -1
  30. lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +27 -1
  31. lightning_sdk/lightning_cloud/openapi/models/v1_create_billing_upgrade_trigger_record_response.py +97 -0
  32. lightning_sdk/lightning_cloud/openapi/models/v1_create_blog_post_request.py +53 -1
  33. lightning_sdk/lightning_cloud/openapi/models/v1_create_checkout_session_request.py +27 -1
  34. lightning_sdk/lightning_cloud/openapi/models/v1_create_subscription_checkout_session_request.py +29 -3
  35. lightning_sdk/lightning_cloud/openapi/models/{v1_get_clickhouse_assistant_session_daily_aggregated_response.py → v1_get_assistant_session_daily_aggregated_response.py} +22 -22
  36. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +79 -1
  37. lightning_sdk/lightning_cloud/openapi/models/v1_like_status.py +104 -0
  38. lightning_sdk/lightning_cloud/openapi/models/v1_list_published_managed_endpoint_models_response.py +123 -0
  39. lightning_sdk/lightning_cloud/openapi/models/v1_message.py +27 -1
  40. lightning_sdk/lightning_cloud/openapi/models/v1_quote_subscription_response.py +27 -1
  41. lightning_sdk/lightning_cloud/openapi/models/v1_schedule.py +27 -1
  42. lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_like_response.py +149 -0
  43. lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_message_like_response.py +149 -0
  44. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +1 -261
  45. lightning_sdk/llm/llm.py +29 -5
  46. lightning_sdk/machine.py +12 -0
  47. lightning_sdk/mmt/base.py +20 -2
  48. lightning_sdk/mmt/mmt.py +25 -3
  49. lightning_sdk/mmt/v1.py +7 -1
  50. lightning_sdk/mmt/v2.py +21 -2
  51. lightning_sdk/organization.py +4 -0
  52. lightning_sdk/pipeline/pipeline.py +16 -5
  53. lightning_sdk/pipeline/printer.py +5 -3
  54. lightning_sdk/pipeline/schedule.py +844 -1
  55. lightning_sdk/pipeline/steps.py +19 -4
  56. lightning_sdk/sandbox.py +4 -1
  57. lightning_sdk/serve.py +2 -0
  58. lightning_sdk/studio.py +79 -39
  59. lightning_sdk/teamspace.py +14 -8
  60. lightning_sdk/utils/resolve.py +29 -2
  61. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.22.dist-info}/METADATA +1 -1
  62. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.22.dist-info}/RECORD +67 -59
  63. lightning_sdk/api/cluster_api.py +0 -119
  64. /lightning_sdk/cli/{inspect.py → inspection.py} +0 -0
  65. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.22.dist-info}/LICENSE +0 -0
  66. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.22.dist-info}/WHEEL +0 -0
  67. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.22.dist-info}/entry_points.txt +0 -0
  68. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.22.dist-info}/top_level.txt +0 -0
@@ -1477,6 +1477,91 @@ class AssistantsServiceApi(object):
1477
1477
  _request_timeout=params.get('_request_timeout'),
1478
1478
  collection_formats=collection_formats)
1479
1479
 
1480
+ def assistants_service_list_published_managed_endpoint_models(self, **kwargs) -> 'V1ListPublishedManagedEndpointModelsResponse': # noqa: E501
1481
+ """assistants_service_list_published_managed_endpoint_models # noqa: E501
1482
+
1483
+ This method makes a synchronous HTTP request by default. To make an
1484
+ asynchronous HTTP request, please pass async_req=True
1485
+ >>> thread = api.assistants_service_list_published_managed_endpoint_models(async_req=True)
1486
+ >>> result = thread.get()
1487
+
1488
+ :param async_req bool
1489
+ :return: V1ListPublishedManagedEndpointModelsResponse
1490
+ If the method is called asynchronously,
1491
+ returns the request thread.
1492
+ """
1493
+ kwargs['_return_http_data_only'] = True
1494
+ if kwargs.get('async_req'):
1495
+ return self.assistants_service_list_published_managed_endpoint_models_with_http_info(**kwargs) # noqa: E501
1496
+ else:
1497
+ (data) = self.assistants_service_list_published_managed_endpoint_models_with_http_info(**kwargs) # noqa: E501
1498
+ return data
1499
+
1500
+ def assistants_service_list_published_managed_endpoint_models_with_http_info(self, **kwargs) -> 'V1ListPublishedManagedEndpointModelsResponse': # noqa: E501
1501
+ """assistants_service_list_published_managed_endpoint_models # noqa: E501
1502
+
1503
+ This method makes a synchronous HTTP request by default. To make an
1504
+ asynchronous HTTP request, please pass async_req=True
1505
+ >>> thread = api.assistants_service_list_published_managed_endpoint_models_with_http_info(async_req=True)
1506
+ >>> result = thread.get()
1507
+
1508
+ :param async_req bool
1509
+ :return: V1ListPublishedManagedEndpointModelsResponse
1510
+ If the method is called asynchronously,
1511
+ returns the request thread.
1512
+ """
1513
+
1514
+ all_params = [] # noqa: E501
1515
+ all_params.append('async_req')
1516
+ all_params.append('_return_http_data_only')
1517
+ all_params.append('_preload_content')
1518
+ all_params.append('_request_timeout')
1519
+
1520
+ params = locals()
1521
+ for key, val in six.iteritems(params['kwargs']):
1522
+ if key not in all_params:
1523
+ raise TypeError(
1524
+ "Got an unexpected keyword argument '%s'"
1525
+ " to method assistants_service_list_published_managed_endpoint_models" % key
1526
+ )
1527
+ params[key] = val
1528
+ del params['kwargs']
1529
+
1530
+ collection_formats = {}
1531
+
1532
+ path_params = {}
1533
+
1534
+ query_params = []
1535
+
1536
+ header_params = {}
1537
+
1538
+ form_params = []
1539
+ local_var_files = {}
1540
+
1541
+ body_params = None
1542
+ # HTTP header `Accept`
1543
+ header_params['Accept'] = self.api_client.select_header_accept(
1544
+ ['application/json']) # noqa: E501
1545
+
1546
+ # Authentication setting
1547
+ auth_settings = [] # noqa: E501
1548
+
1549
+ return self.api_client.call_api(
1550
+ '/v1/agents/published-managed-models', 'GET',
1551
+ path_params,
1552
+ query_params,
1553
+ header_params,
1554
+ body=body_params,
1555
+ post_params=form_params,
1556
+ files=local_var_files,
1557
+ response_type='V1ListPublishedManagedEndpointModelsResponse', # noqa: E501
1558
+ auth_settings=auth_settings,
1559
+ async_req=params.get('async_req'),
1560
+ _return_http_data_only=params.get('_return_http_data_only'),
1561
+ _preload_content=params.get('_preload_content', True),
1562
+ _request_timeout=params.get('_request_timeout'),
1563
+ collection_formats=collection_formats)
1564
+
1480
1565
  def assistants_service_start_conversation(self, body: 'AssistantIdConversationsBody', assistant_id: 'str', **kwargs) -> 'StreamResultOfV1ConversationResponseChunk': # noqa: E501
1481
1566
  """assistants_service_start_conversation # noqa: E501
1482
1567
 
@@ -2042,6 +2127,256 @@ class AssistantsServiceApi(object):
2042
2127
  _request_timeout=params.get('_request_timeout'),
2043
2128
  collection_formats=collection_formats)
2044
2129
 
2130
+ def assistants_service_update_conversation_like(self, body: 'ConversationsIdBody1', project_id: 'str', assistant_id: 'str', id: 'str', **kwargs) -> 'V1UpdateConversationLikeResponse': # noqa: E501
2131
+ """assistants_service_update_conversation_like # noqa: E501
2132
+
2133
+ This method makes a synchronous HTTP request by default. To make an
2134
+ asynchronous HTTP request, please pass async_req=True
2135
+ >>> thread = api.assistants_service_update_conversation_like(body, project_id, assistant_id, id, async_req=True)
2136
+ >>> result = thread.get()
2137
+
2138
+ :param async_req bool
2139
+ :param ConversationsIdBody1 body: (required)
2140
+ :param str project_id: (required)
2141
+ :param str assistant_id: (required)
2142
+ :param str id: (required)
2143
+ :return: V1UpdateConversationLikeResponse
2144
+ If the method is called asynchronously,
2145
+ returns the request thread.
2146
+ """
2147
+ kwargs['_return_http_data_only'] = True
2148
+ if kwargs.get('async_req'):
2149
+ return self.assistants_service_update_conversation_like_with_http_info(body, project_id, assistant_id, id, **kwargs) # noqa: E501
2150
+ else:
2151
+ (data) = self.assistants_service_update_conversation_like_with_http_info(body, project_id, assistant_id, id, **kwargs) # noqa: E501
2152
+ return data
2153
+
2154
+ def assistants_service_update_conversation_like_with_http_info(self, body: 'ConversationsIdBody1', project_id: 'str', assistant_id: 'str', id: 'str', **kwargs) -> 'V1UpdateConversationLikeResponse': # noqa: E501
2155
+ """assistants_service_update_conversation_like # noqa: E501
2156
+
2157
+ This method makes a synchronous HTTP request by default. To make an
2158
+ asynchronous HTTP request, please pass async_req=True
2159
+ >>> thread = api.assistants_service_update_conversation_like_with_http_info(body, project_id, assistant_id, id, async_req=True)
2160
+ >>> result = thread.get()
2161
+
2162
+ :param async_req bool
2163
+ :param ConversationsIdBody1 body: (required)
2164
+ :param str project_id: (required)
2165
+ :param str assistant_id: (required)
2166
+ :param str id: (required)
2167
+ :return: V1UpdateConversationLikeResponse
2168
+ If the method is called asynchronously,
2169
+ returns the request thread.
2170
+ """
2171
+
2172
+ all_params = ['body', 'project_id', 'assistant_id', 'id'] # noqa: E501
2173
+ all_params.append('async_req')
2174
+ all_params.append('_return_http_data_only')
2175
+ all_params.append('_preload_content')
2176
+ all_params.append('_request_timeout')
2177
+
2178
+ params = locals()
2179
+ for key, val in six.iteritems(params['kwargs']):
2180
+ if key not in all_params:
2181
+ raise TypeError(
2182
+ "Got an unexpected keyword argument '%s'"
2183
+ " to method assistants_service_update_conversation_like" % key
2184
+ )
2185
+ params[key] = val
2186
+ del params['kwargs']
2187
+ # verify the required parameter 'body' is set
2188
+ if ('body' not in params or
2189
+ params['body'] is None):
2190
+ raise ValueError("Missing the required parameter `body` when calling `assistants_service_update_conversation_like`") # noqa: E501
2191
+ # verify the required parameter 'project_id' is set
2192
+ if ('project_id' not in params or
2193
+ params['project_id'] is None):
2194
+ raise ValueError("Missing the required parameter `project_id` when calling `assistants_service_update_conversation_like`") # noqa: E501
2195
+ # verify the required parameter 'assistant_id' is set
2196
+ if ('assistant_id' not in params or
2197
+ params['assistant_id'] is None):
2198
+ raise ValueError("Missing the required parameter `assistant_id` when calling `assistants_service_update_conversation_like`") # noqa: E501
2199
+ # verify the required parameter 'id' is set
2200
+ if ('id' not in params or
2201
+ params['id'] is None):
2202
+ raise ValueError("Missing the required parameter `id` when calling `assistants_service_update_conversation_like`") # noqa: E501
2203
+
2204
+ collection_formats = {}
2205
+
2206
+ path_params = {}
2207
+ if 'project_id' in params:
2208
+ path_params['projectId'] = params['project_id'] # noqa: E501
2209
+ if 'assistant_id' in params:
2210
+ path_params['assistantId'] = params['assistant_id'] # noqa: E501
2211
+ if 'id' in params:
2212
+ path_params['id'] = params['id'] # noqa: E501
2213
+
2214
+ query_params = []
2215
+
2216
+ header_params = {}
2217
+
2218
+ form_params = []
2219
+ local_var_files = {}
2220
+
2221
+ body_params = None
2222
+ if 'body' in params:
2223
+ body_params = params['body']
2224
+ # HTTP header `Accept`
2225
+ header_params['Accept'] = self.api_client.select_header_accept(
2226
+ ['application/json']) # noqa: E501
2227
+
2228
+ # HTTP header `Content-Type`
2229
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
2230
+ ['application/json']) # noqa: E501
2231
+
2232
+ # Authentication setting
2233
+ auth_settings = [] # noqa: E501
2234
+
2235
+ return self.api_client.call_api(
2236
+ '/v1/projects/{projectId}/agents/{assistantId}/conversations/{id}', 'PUT',
2237
+ path_params,
2238
+ query_params,
2239
+ header_params,
2240
+ body=body_params,
2241
+ post_params=form_params,
2242
+ files=local_var_files,
2243
+ response_type='V1UpdateConversationLikeResponse', # noqa: E501
2244
+ auth_settings=auth_settings,
2245
+ async_req=params.get('async_req'),
2246
+ _return_http_data_only=params.get('_return_http_data_only'),
2247
+ _preload_content=params.get('_preload_content', True),
2248
+ _request_timeout=params.get('_request_timeout'),
2249
+ collection_formats=collection_formats)
2250
+
2251
+ def assistants_service_update_conversation_message_like(self, body: 'MessagesIdBody', project_id: 'str', assistant_id: 'str', conversation_id: 'str', id: 'str', **kwargs) -> 'V1UpdateConversationMessageLikeResponse': # noqa: E501
2252
+ """assistants_service_update_conversation_message_like # noqa: E501
2253
+
2254
+ This method makes a synchronous HTTP request by default. To make an
2255
+ asynchronous HTTP request, please pass async_req=True
2256
+ >>> thread = api.assistants_service_update_conversation_message_like(body, project_id, assistant_id, conversation_id, id, async_req=True)
2257
+ >>> result = thread.get()
2258
+
2259
+ :param async_req bool
2260
+ :param MessagesIdBody body: (required)
2261
+ :param str project_id: (required)
2262
+ :param str assistant_id: (required)
2263
+ :param str conversation_id: (required)
2264
+ :param str id: (required)
2265
+ :return: V1UpdateConversationMessageLikeResponse
2266
+ If the method is called asynchronously,
2267
+ returns the request thread.
2268
+ """
2269
+ kwargs['_return_http_data_only'] = True
2270
+ if kwargs.get('async_req'):
2271
+ return self.assistants_service_update_conversation_message_like_with_http_info(body, project_id, assistant_id, conversation_id, id, **kwargs) # noqa: E501
2272
+ else:
2273
+ (data) = self.assistants_service_update_conversation_message_like_with_http_info(body, project_id, assistant_id, conversation_id, id, **kwargs) # noqa: E501
2274
+ return data
2275
+
2276
+ def assistants_service_update_conversation_message_like_with_http_info(self, body: 'MessagesIdBody', project_id: 'str', assistant_id: 'str', conversation_id: 'str', id: 'str', **kwargs) -> 'V1UpdateConversationMessageLikeResponse': # noqa: E501
2277
+ """assistants_service_update_conversation_message_like # noqa: E501
2278
+
2279
+ This method makes a synchronous HTTP request by default. To make an
2280
+ asynchronous HTTP request, please pass async_req=True
2281
+ >>> thread = api.assistants_service_update_conversation_message_like_with_http_info(body, project_id, assistant_id, conversation_id, id, async_req=True)
2282
+ >>> result = thread.get()
2283
+
2284
+ :param async_req bool
2285
+ :param MessagesIdBody body: (required)
2286
+ :param str project_id: (required)
2287
+ :param str assistant_id: (required)
2288
+ :param str conversation_id: (required)
2289
+ :param str id: (required)
2290
+ :return: V1UpdateConversationMessageLikeResponse
2291
+ If the method is called asynchronously,
2292
+ returns the request thread.
2293
+ """
2294
+
2295
+ all_params = ['body', 'project_id', 'assistant_id', 'conversation_id', 'id'] # noqa: E501
2296
+ all_params.append('async_req')
2297
+ all_params.append('_return_http_data_only')
2298
+ all_params.append('_preload_content')
2299
+ all_params.append('_request_timeout')
2300
+
2301
+ params = locals()
2302
+ for key, val in six.iteritems(params['kwargs']):
2303
+ if key not in all_params:
2304
+ raise TypeError(
2305
+ "Got an unexpected keyword argument '%s'"
2306
+ " to method assistants_service_update_conversation_message_like" % key
2307
+ )
2308
+ params[key] = val
2309
+ del params['kwargs']
2310
+ # verify the required parameter 'body' is set
2311
+ if ('body' not in params or
2312
+ params['body'] is None):
2313
+ raise ValueError("Missing the required parameter `body` when calling `assistants_service_update_conversation_message_like`") # noqa: E501
2314
+ # verify the required parameter 'project_id' is set
2315
+ if ('project_id' not in params or
2316
+ params['project_id'] is None):
2317
+ raise ValueError("Missing the required parameter `project_id` when calling `assistants_service_update_conversation_message_like`") # noqa: E501
2318
+ # verify the required parameter 'assistant_id' is set
2319
+ if ('assistant_id' not in params or
2320
+ params['assistant_id'] is None):
2321
+ raise ValueError("Missing the required parameter `assistant_id` when calling `assistants_service_update_conversation_message_like`") # noqa: E501
2322
+ # verify the required parameter 'conversation_id' is set
2323
+ if ('conversation_id' not in params or
2324
+ params['conversation_id'] is None):
2325
+ raise ValueError("Missing the required parameter `conversation_id` when calling `assistants_service_update_conversation_message_like`") # noqa: E501
2326
+ # verify the required parameter 'id' is set
2327
+ if ('id' not in params or
2328
+ params['id'] is None):
2329
+ raise ValueError("Missing the required parameter `id` when calling `assistants_service_update_conversation_message_like`") # noqa: E501
2330
+
2331
+ collection_formats = {}
2332
+
2333
+ path_params = {}
2334
+ if 'project_id' in params:
2335
+ path_params['projectId'] = params['project_id'] # noqa: E501
2336
+ if 'assistant_id' in params:
2337
+ path_params['assistantId'] = params['assistant_id'] # noqa: E501
2338
+ if 'conversation_id' in params:
2339
+ path_params['conversationId'] = params['conversation_id'] # noqa: E501
2340
+ if 'id' in params:
2341
+ path_params['id'] = params['id'] # noqa: E501
2342
+
2343
+ query_params = []
2344
+
2345
+ header_params = {}
2346
+
2347
+ form_params = []
2348
+ local_var_files = {}
2349
+
2350
+ body_params = None
2351
+ if 'body' in params:
2352
+ body_params = params['body']
2353
+ # HTTP header `Accept`
2354
+ header_params['Accept'] = self.api_client.select_header_accept(
2355
+ ['application/json']) # noqa: E501
2356
+
2357
+ # HTTP header `Content-Type`
2358
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
2359
+ ['application/json']) # noqa: E501
2360
+
2361
+ # Authentication setting
2362
+ auth_settings = [] # noqa: E501
2363
+
2364
+ return self.api_client.call_api(
2365
+ '/v1/projects/{projectId}/agents/{assistantId}/conversations/{conversationId}/messages/{id}', 'PUT',
2366
+ path_params,
2367
+ query_params,
2368
+ header_params,
2369
+ body=body_params,
2370
+ post_params=form_params,
2371
+ files=local_var_files,
2372
+ response_type='V1UpdateConversationMessageLikeResponse', # noqa: E501
2373
+ auth_settings=auth_settings,
2374
+ async_req=params.get('async_req'),
2375
+ _return_http_data_only=params.get('_return_http_data_only'),
2376
+ _preload_content=params.get('_preload_content', True),
2377
+ _request_timeout=params.get('_request_timeout'),
2378
+ collection_formats=collection_formats)
2379
+
2045
2380
  def assistants_service_validate_assistant_managed_endpoint(self, body: 'V1ValidateManagedEndpointRequest', **kwargs) -> 'V1ValidateManagedEndpointResponse': # noqa: E501
2046
2381
  """assistants_service_validate_assistant_managed_endpoint # noqa: E501
2047
2382