lightning-sdk 2025.12.16__py3-none-any.whl → 2025.12.17__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 (73) hide show
  1. lightning_sdk/__version__.py +1 -1
  2. lightning_sdk/api/org_api.py +7 -0
  3. lightning_sdk/api/studio_api.py +28 -3
  4. lightning_sdk/api/user_api.py +5 -0
  5. lightning_sdk/cli/legacy/download.py +2 -1
  6. lightning_sdk/cli/legacy/studios_menu.py +8 -1
  7. lightning_sdk/job/base.py +23 -4
  8. lightning_sdk/job/job.py +12 -5
  9. lightning_sdk/job/v1.py +5 -2
  10. lightning_sdk/job/v2.py +9 -1
  11. lightning_sdk/lightning_cloud/openapi/__init__.py +26 -1
  12. lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
  13. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +5 -1
  14. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +517 -0
  15. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +5 -1
  16. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +11 -11
  17. lightning_sdk/lightning_cloud/openapi/api/kubernetes_virtual_machine_service_api.py +557 -0
  18. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +5 -1
  19. lightning_sdk/lightning_cloud/openapi/models/__init__.py +25 -1
  20. lightning_sdk/lightning_cloud/openapi/models/cloud_space_environment_template_service_update_cloud_space_environment_template_body.py +27 -1
  21. lightning_sdk/lightning_cloud/openapi/models/cluster_service_add_container_registry_body.py +123 -0
  22. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_machine_body.py +27 -1
  23. lightning_sdk/lightning_cloud/openapi/models/cluster_service_refresh_container_registry_credentials_body.py +97 -0
  24. lightning_sdk/lightning_cloud/openapi/models/cluster_service_validate_container_registry_body.py +97 -0
  25. lightning_sdk/lightning_cloud/openapi/models/kubernetes_virtual_machine_service_create_kubernetes_virtual_machine_body.py +513 -0
  26. lightning_sdk/lightning_cloud/openapi/models/kubernetes_virtual_machine_service_update_kubernetes_virtual_machine_body.py +97 -0
  27. lightning_sdk/lightning_cloud/openapi/models/v1_add_container_registry_response.py +123 -0
  28. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +27 -1
  29. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_specialized_view.py +1 -0
  30. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry.py +253 -0
  31. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_info.py +281 -0
  32. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_integration.py +123 -0
  33. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_status.py +105 -0
  34. lightning_sdk/lightning_cloud/openapi/models/v1_create_cloud_space_environment_template_request.py +27 -1
  35. lightning_sdk/lightning_cloud/openapi/models/v1_delete_container_registry_response.py +97 -0
  36. lightning_sdk/lightning_cloud/openapi/models/v1_delete_kubernetes_virtual_machine_response.py +97 -0
  37. lightning_sdk/lightning_cloud/openapi/models/v1_ecr_registry_config.py +175 -0
  38. lightning_sdk/lightning_cloud/openapi/models/v1_ecr_registry_config_input.py +123 -0
  39. lightning_sdk/lightning_cloud/openapi/models/v1_ecr_registry_details.py +201 -0
  40. lightning_sdk/lightning_cloud/openapi/models/v1_get_artifacts_page_response.py +29 -3
  41. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +27 -1
  42. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +53 -1
  43. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_virtual_machine.py +383 -0
  44. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_config.py +305 -0
  45. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_provider_configuration.py +227 -0
  46. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_vm_configuration.py +149 -0
  47. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_vm_resources.py +201 -0
  48. lightning_sdk/lightning_cloud/openapi/models/v1_list_container_registries_response.py +123 -0
  49. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_virtual_machines_response.py +123 -0
  50. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +27 -1
  51. lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +27 -1
  52. lightning_sdk/lightning_cloud/openapi/models/v1_refresh_container_registry_credentials_response.py +123 -0
  53. lightning_sdk/lightning_cloud/openapi/models/v1_search_user.py +27 -1
  54. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +79 -1
  55. lightning_sdk/lightning_cloud/openapi/models/v1_validate_container_registry_response.py +149 -0
  56. lightning_sdk/lightning_cloud/openapi/rest.py +2 -2
  57. lightning_sdk/mmt/base.py +26 -7
  58. lightning_sdk/mmt/mmt.py +11 -6
  59. lightning_sdk/mmt/v1.py +5 -2
  60. lightning_sdk/mmt/v2.py +5 -2
  61. lightning_sdk/organization.py +10 -1
  62. lightning_sdk/owner.py +4 -0
  63. lightning_sdk/plugin.py +2 -2
  64. lightning_sdk/studio.py +33 -2
  65. lightning_sdk/user.py +22 -2
  66. lightning_sdk/utils/resolve.py +9 -7
  67. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2025.12.17.dist-info}/METADATA +1 -1
  68. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2025.12.17.dist-info}/RECORD +73 -48
  69. /lightning_sdk/lightning_cloud/openapi/models/{v1_list_filesystem_mm_ts_response.py → v1_list_filesystem_mmts_response.py} +0 -0
  70. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2025.12.17.dist-info}/LICENSE +0 -0
  71. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2025.12.17.dist-info}/WHEEL +0 -0
  72. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2025.12.17.dist-info}/entry_points.txt +0 -0
  73. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2025.12.17.dist-info}/top_level.txt +0 -0
@@ -43,6 +43,111 @@ class ClusterServiceApi(object):
43
43
  api_client = ApiClient()
44
44
  self.api_client = api_client
45
45
 
46
+ def cluster_service_add_container_registry(self, body: 'ClusterServiceAddContainerRegistryBody', cluster_id: 'str', **kwargs) -> 'V1AddContainerRegistryResponse': # noqa: E501
47
+ """Add a new container registry to a cluster # noqa: E501
48
+
49
+ This method makes a synchronous HTTP request by default. To make an
50
+ asynchronous HTTP request, please pass async_req=True
51
+ >>> thread = api.cluster_service_add_container_registry(body, cluster_id, async_req=True)
52
+ >>> result = thread.get()
53
+
54
+ :param async_req bool
55
+ :param ClusterServiceAddContainerRegistryBody body: (required)
56
+ :param str cluster_id: (required)
57
+ :return: V1AddContainerRegistryResponse
58
+ If the method is called asynchronously,
59
+ returns the request thread.
60
+ """
61
+ kwargs['_return_http_data_only'] = True
62
+ if kwargs.get('async_req'):
63
+ return self.cluster_service_add_container_registry_with_http_info(body, cluster_id, **kwargs) # noqa: E501
64
+ else:
65
+ (data) = self.cluster_service_add_container_registry_with_http_info(body, cluster_id, **kwargs) # noqa: E501
66
+ return data
67
+
68
+ def cluster_service_add_container_registry_with_http_info(self, body: 'ClusterServiceAddContainerRegistryBody', cluster_id: 'str', **kwargs) -> 'V1AddContainerRegistryResponse': # noqa: E501
69
+ """Add a new container registry to a cluster # noqa: E501
70
+
71
+ This method makes a synchronous HTTP request by default. To make an
72
+ asynchronous HTTP request, please pass async_req=True
73
+ >>> thread = api.cluster_service_add_container_registry_with_http_info(body, cluster_id, async_req=True)
74
+ >>> result = thread.get()
75
+
76
+ :param async_req bool
77
+ :param ClusterServiceAddContainerRegistryBody body: (required)
78
+ :param str cluster_id: (required)
79
+ :return: V1AddContainerRegistryResponse
80
+ If the method is called asynchronously,
81
+ returns the request thread.
82
+ """
83
+
84
+ all_params = ['body', 'cluster_id'] # noqa: E501
85
+ all_params.append('async_req')
86
+ all_params.append('_return_http_data_only')
87
+ all_params.append('_preload_content')
88
+ all_params.append('_request_timeout')
89
+
90
+ params = locals()
91
+ for key, val in six.iteritems(params['kwargs']):
92
+ if key not in all_params:
93
+ raise TypeError(
94
+ "Got an unexpected keyword argument '%s'"
95
+ " to method cluster_service_add_container_registry" % key
96
+ )
97
+ params[key] = val
98
+ del params['kwargs']
99
+ # verify the required parameter 'body' is set
100
+ if ('body' not in params or
101
+ params['body'] is None):
102
+ raise ValueError("Missing the required parameter `body` when calling `cluster_service_add_container_registry`") # noqa: E501
103
+ # verify the required parameter 'cluster_id' is set
104
+ if ('cluster_id' not in params or
105
+ params['cluster_id'] is None):
106
+ raise ValueError("Missing the required parameter `cluster_id` when calling `cluster_service_add_container_registry`") # noqa: E501
107
+
108
+ collection_formats = {}
109
+
110
+ path_params = {}
111
+ if 'cluster_id' in params:
112
+ path_params['clusterId'] = params['cluster_id'] # noqa: E501
113
+
114
+ query_params = []
115
+
116
+ header_params = {}
117
+
118
+ form_params = []
119
+ local_var_files = {}
120
+
121
+ body_params = None
122
+ if 'body' in params:
123
+ body_params = params['body']
124
+ # HTTP header `Accept`
125
+ header_params['Accept'] = self.api_client.select_header_accept(
126
+ ['application/json']) # noqa: E501
127
+
128
+ # HTTP header `Content-Type`
129
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
130
+ ['application/json']) # noqa: E501
131
+
132
+ # Authentication setting
133
+ auth_settings = [] # noqa: E501
134
+
135
+ return self.api_client.call_api(
136
+ '/v1/clusters/{clusterId}/container-registries', 'POST',
137
+ path_params,
138
+ query_params,
139
+ header_params,
140
+ body=body_params,
141
+ post_params=form_params,
142
+ files=local_var_files,
143
+ response_type='V1AddContainerRegistryResponse', # noqa: E501
144
+ auth_settings=auth_settings,
145
+ async_req=params.get('async_req'),
146
+ _return_http_data_only=params.get('_return_http_data_only'),
147
+ _preload_content=params.get('_preload_content', True),
148
+ _request_timeout=params.get('_request_timeout'),
149
+ collection_formats=collection_formats)
150
+
46
151
  def cluster_service_check_cluster_name_availability(self, body: 'V1CheckClusterNameAvailabilityRequest', **kwargs) -> 'V1CheckClusterNameAvailabilityResponse': # noqa: E501
47
152
  """cluster_service_check_cluster_name_availability # noqa: E501
48
153
 
@@ -1497,6 +1602,107 @@ class ClusterServiceApi(object):
1497
1602
  _request_timeout=params.get('_request_timeout'),
1498
1603
  collection_formats=collection_formats)
1499
1604
 
1605
+ def cluster_service_delete_container_registry(self, cluster_id: 'str', registry_id: 'str', **kwargs) -> 'V1DeleteContainerRegistryResponse': # noqa: E501
1606
+ """Delete a container registry from a cluster # noqa: E501
1607
+
1608
+ This method makes a synchronous HTTP request by default. To make an
1609
+ asynchronous HTTP request, please pass async_req=True
1610
+ >>> thread = api.cluster_service_delete_container_registry(cluster_id, registry_id, async_req=True)
1611
+ >>> result = thread.get()
1612
+
1613
+ :param async_req bool
1614
+ :param str cluster_id: (required)
1615
+ :param str registry_id: (required)
1616
+ :return: V1DeleteContainerRegistryResponse
1617
+ If the method is called asynchronously,
1618
+ returns the request thread.
1619
+ """
1620
+ kwargs['_return_http_data_only'] = True
1621
+ if kwargs.get('async_req'):
1622
+ return self.cluster_service_delete_container_registry_with_http_info(cluster_id, registry_id, **kwargs) # noqa: E501
1623
+ else:
1624
+ (data) = self.cluster_service_delete_container_registry_with_http_info(cluster_id, registry_id, **kwargs) # noqa: E501
1625
+ return data
1626
+
1627
+ def cluster_service_delete_container_registry_with_http_info(self, cluster_id: 'str', registry_id: 'str', **kwargs) -> 'V1DeleteContainerRegistryResponse': # noqa: E501
1628
+ """Delete a container registry from a cluster # noqa: E501
1629
+
1630
+ This method makes a synchronous HTTP request by default. To make an
1631
+ asynchronous HTTP request, please pass async_req=True
1632
+ >>> thread = api.cluster_service_delete_container_registry_with_http_info(cluster_id, registry_id, async_req=True)
1633
+ >>> result = thread.get()
1634
+
1635
+ :param async_req bool
1636
+ :param str cluster_id: (required)
1637
+ :param str registry_id: (required)
1638
+ :return: V1DeleteContainerRegistryResponse
1639
+ If the method is called asynchronously,
1640
+ returns the request thread.
1641
+ """
1642
+
1643
+ all_params = ['cluster_id', 'registry_id'] # noqa: E501
1644
+ all_params.append('async_req')
1645
+ all_params.append('_return_http_data_only')
1646
+ all_params.append('_preload_content')
1647
+ all_params.append('_request_timeout')
1648
+
1649
+ params = locals()
1650
+ for key, val in six.iteritems(params['kwargs']):
1651
+ if key not in all_params:
1652
+ raise TypeError(
1653
+ "Got an unexpected keyword argument '%s'"
1654
+ " to method cluster_service_delete_container_registry" % key
1655
+ )
1656
+ params[key] = val
1657
+ del params['kwargs']
1658
+ # verify the required parameter 'cluster_id' is set
1659
+ if ('cluster_id' not in params or
1660
+ params['cluster_id'] is None):
1661
+ raise ValueError("Missing the required parameter `cluster_id` when calling `cluster_service_delete_container_registry`") # noqa: E501
1662
+ # verify the required parameter 'registry_id' is set
1663
+ if ('registry_id' not in params or
1664
+ params['registry_id'] is None):
1665
+ raise ValueError("Missing the required parameter `registry_id` when calling `cluster_service_delete_container_registry`") # noqa: E501
1666
+
1667
+ collection_formats = {}
1668
+
1669
+ path_params = {}
1670
+ if 'cluster_id' in params:
1671
+ path_params['clusterId'] = params['cluster_id'] # noqa: E501
1672
+ if 'registry_id' in params:
1673
+ path_params['registryId'] = params['registry_id'] # noqa: E501
1674
+
1675
+ query_params = []
1676
+
1677
+ header_params = {}
1678
+
1679
+ form_params = []
1680
+ local_var_files = {}
1681
+
1682
+ body_params = None
1683
+ # HTTP header `Accept`
1684
+ header_params['Accept'] = self.api_client.select_header_accept(
1685
+ ['application/json']) # noqa: E501
1686
+
1687
+ # Authentication setting
1688
+ auth_settings = [] # noqa: E501
1689
+
1690
+ return self.api_client.call_api(
1691
+ '/v1/clusters/{clusterId}/container-registries/{registryId}', 'DELETE',
1692
+ path_params,
1693
+ query_params,
1694
+ header_params,
1695
+ body=body_params,
1696
+ post_params=form_params,
1697
+ files=local_var_files,
1698
+ response_type='V1DeleteContainerRegistryResponse', # noqa: E501
1699
+ auth_settings=auth_settings,
1700
+ async_req=params.get('async_req'),
1701
+ _return_http_data_only=params.get('_return_http_data_only'),
1702
+ _preload_content=params.get('_preload_content', True),
1703
+ _request_timeout=params.get('_request_timeout'),
1704
+ collection_formats=collection_formats)
1705
+
1500
1706
  def cluster_service_delete_machine(self, cluster_id: 'str', id: 'str', **kwargs) -> 'V1DeleteMachineResponse': # noqa: E501
1501
1707
  """Delete a machine # noqa: E501
1502
1708
 
@@ -3238,6 +3444,99 @@ class ClusterServiceApi(object):
3238
3444
  _request_timeout=params.get('_request_timeout'),
3239
3445
  collection_formats=collection_formats)
3240
3446
 
3447
+ def cluster_service_list_container_registries(self, cluster_id: 'str', **kwargs) -> 'V1ListContainerRegistriesResponse': # noqa: E501
3448
+ """List all container registries configured for a cluster # noqa: E501
3449
+
3450
+ This method makes a synchronous HTTP request by default. To make an
3451
+ asynchronous HTTP request, please pass async_req=True
3452
+ >>> thread = api.cluster_service_list_container_registries(cluster_id, async_req=True)
3453
+ >>> result = thread.get()
3454
+
3455
+ :param async_req bool
3456
+ :param str cluster_id: (required)
3457
+ :return: V1ListContainerRegistriesResponse
3458
+ If the method is called asynchronously,
3459
+ returns the request thread.
3460
+ """
3461
+ kwargs['_return_http_data_only'] = True
3462
+ if kwargs.get('async_req'):
3463
+ return self.cluster_service_list_container_registries_with_http_info(cluster_id, **kwargs) # noqa: E501
3464
+ else:
3465
+ (data) = self.cluster_service_list_container_registries_with_http_info(cluster_id, **kwargs) # noqa: E501
3466
+ return data
3467
+
3468
+ def cluster_service_list_container_registries_with_http_info(self, cluster_id: 'str', **kwargs) -> 'V1ListContainerRegistriesResponse': # noqa: E501
3469
+ """List all container registries configured for a cluster # noqa: E501
3470
+
3471
+ This method makes a synchronous HTTP request by default. To make an
3472
+ asynchronous HTTP request, please pass async_req=True
3473
+ >>> thread = api.cluster_service_list_container_registries_with_http_info(cluster_id, async_req=True)
3474
+ >>> result = thread.get()
3475
+
3476
+ :param async_req bool
3477
+ :param str cluster_id: (required)
3478
+ :return: V1ListContainerRegistriesResponse
3479
+ If the method is called asynchronously,
3480
+ returns the request thread.
3481
+ """
3482
+
3483
+ all_params = ['cluster_id'] # noqa: E501
3484
+ all_params.append('async_req')
3485
+ all_params.append('_return_http_data_only')
3486
+ all_params.append('_preload_content')
3487
+ all_params.append('_request_timeout')
3488
+
3489
+ params = locals()
3490
+ for key, val in six.iteritems(params['kwargs']):
3491
+ if key not in all_params:
3492
+ raise TypeError(
3493
+ "Got an unexpected keyword argument '%s'"
3494
+ " to method cluster_service_list_container_registries" % key
3495
+ )
3496
+ params[key] = val
3497
+ del params['kwargs']
3498
+ # verify the required parameter 'cluster_id' is set
3499
+ if ('cluster_id' not in params or
3500
+ params['cluster_id'] is None):
3501
+ raise ValueError("Missing the required parameter `cluster_id` when calling `cluster_service_list_container_registries`") # noqa: E501
3502
+
3503
+ collection_formats = {}
3504
+
3505
+ path_params = {}
3506
+ if 'cluster_id' in params:
3507
+ path_params['clusterId'] = params['cluster_id'] # noqa: E501
3508
+
3509
+ query_params = []
3510
+
3511
+ header_params = {}
3512
+
3513
+ form_params = []
3514
+ local_var_files = {}
3515
+
3516
+ body_params = None
3517
+ # HTTP header `Accept`
3518
+ header_params['Accept'] = self.api_client.select_header_accept(
3519
+ ['application/json']) # noqa: E501
3520
+
3521
+ # Authentication setting
3522
+ auth_settings = [] # noqa: E501
3523
+
3524
+ return self.api_client.call_api(
3525
+ '/v1/clusters/{clusterId}/container-registries', 'GET',
3526
+ path_params,
3527
+ query_params,
3528
+ header_params,
3529
+ body=body_params,
3530
+ post_params=form_params,
3531
+ files=local_var_files,
3532
+ response_type='V1ListContainerRegistriesResponse', # noqa: E501
3533
+ auth_settings=auth_settings,
3534
+ async_req=params.get('async_req'),
3535
+ _return_http_data_only=params.get('_return_http_data_only'),
3536
+ _preload_content=params.get('_preload_content', True),
3537
+ _request_timeout=params.get('_request_timeout'),
3538
+ collection_formats=collection_formats)
3539
+
3241
3540
  def cluster_service_list_default_cluster_accelerators(self, **kwargs) -> 'V1ListDefaultClusterAcceleratorsResponse': # noqa: E501
3242
3541
  """cluster_service_list_default_cluster_accelerators # noqa: E501
3243
3542
 
@@ -3840,6 +4139,111 @@ class ClusterServiceApi(object):
3840
4139
  _request_timeout=params.get('_request_timeout'),
3841
4140
  collection_formats=collection_formats)
3842
4141
 
4142
+ def cluster_service_refresh_container_registry_credentials(self, body: 'ClusterServiceRefreshContainerRegistryCredentialsBody', cluster_id: 'str', **kwargs) -> 'V1RefreshContainerRegistryCredentialsResponse': # noqa: E501
4143
+ """Refresh credentials for container registries and deploy to cluster # noqa: E501
4144
+
4145
+ This method makes a synchronous HTTP request by default. To make an
4146
+ asynchronous HTTP request, please pass async_req=True
4147
+ >>> thread = api.cluster_service_refresh_container_registry_credentials(body, cluster_id, async_req=True)
4148
+ >>> result = thread.get()
4149
+
4150
+ :param async_req bool
4151
+ :param ClusterServiceRefreshContainerRegistryCredentialsBody body: (required)
4152
+ :param str cluster_id: (required)
4153
+ :return: V1RefreshContainerRegistryCredentialsResponse
4154
+ If the method is called asynchronously,
4155
+ returns the request thread.
4156
+ """
4157
+ kwargs['_return_http_data_only'] = True
4158
+ if kwargs.get('async_req'):
4159
+ return self.cluster_service_refresh_container_registry_credentials_with_http_info(body, cluster_id, **kwargs) # noqa: E501
4160
+ else:
4161
+ (data) = self.cluster_service_refresh_container_registry_credentials_with_http_info(body, cluster_id, **kwargs) # noqa: E501
4162
+ return data
4163
+
4164
+ def cluster_service_refresh_container_registry_credentials_with_http_info(self, body: 'ClusterServiceRefreshContainerRegistryCredentialsBody', cluster_id: 'str', **kwargs) -> 'V1RefreshContainerRegistryCredentialsResponse': # noqa: E501
4165
+ """Refresh credentials for container registries and deploy to cluster # noqa: E501
4166
+
4167
+ This method makes a synchronous HTTP request by default. To make an
4168
+ asynchronous HTTP request, please pass async_req=True
4169
+ >>> thread = api.cluster_service_refresh_container_registry_credentials_with_http_info(body, cluster_id, async_req=True)
4170
+ >>> result = thread.get()
4171
+
4172
+ :param async_req bool
4173
+ :param ClusterServiceRefreshContainerRegistryCredentialsBody body: (required)
4174
+ :param str cluster_id: (required)
4175
+ :return: V1RefreshContainerRegistryCredentialsResponse
4176
+ If the method is called asynchronously,
4177
+ returns the request thread.
4178
+ """
4179
+
4180
+ all_params = ['body', 'cluster_id'] # noqa: E501
4181
+ all_params.append('async_req')
4182
+ all_params.append('_return_http_data_only')
4183
+ all_params.append('_preload_content')
4184
+ all_params.append('_request_timeout')
4185
+
4186
+ params = locals()
4187
+ for key, val in six.iteritems(params['kwargs']):
4188
+ if key not in all_params:
4189
+ raise TypeError(
4190
+ "Got an unexpected keyword argument '%s'"
4191
+ " to method cluster_service_refresh_container_registry_credentials" % key
4192
+ )
4193
+ params[key] = val
4194
+ del params['kwargs']
4195
+ # verify the required parameter 'body' is set
4196
+ if ('body' not in params or
4197
+ params['body'] is None):
4198
+ raise ValueError("Missing the required parameter `body` when calling `cluster_service_refresh_container_registry_credentials`") # noqa: E501
4199
+ # verify the required parameter 'cluster_id' is set
4200
+ if ('cluster_id' not in params or
4201
+ params['cluster_id'] is None):
4202
+ raise ValueError("Missing the required parameter `cluster_id` when calling `cluster_service_refresh_container_registry_credentials`") # noqa: E501
4203
+
4204
+ collection_formats = {}
4205
+
4206
+ path_params = {}
4207
+ if 'cluster_id' in params:
4208
+ path_params['clusterId'] = params['cluster_id'] # noqa: E501
4209
+
4210
+ query_params = []
4211
+
4212
+ header_params = {}
4213
+
4214
+ form_params = []
4215
+ local_var_files = {}
4216
+
4217
+ body_params = None
4218
+ if 'body' in params:
4219
+ body_params = params['body']
4220
+ # HTTP header `Accept`
4221
+ header_params['Accept'] = self.api_client.select_header_accept(
4222
+ ['application/json']) # noqa: E501
4223
+
4224
+ # HTTP header `Content-Type`
4225
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
4226
+ ['application/json']) # noqa: E501
4227
+
4228
+ # Authentication setting
4229
+ auth_settings = [] # noqa: E501
4230
+
4231
+ return self.api_client.call_api(
4232
+ '/v1/clusters/{clusterId}/container-registries/refresh-credentials', 'POST',
4233
+ path_params,
4234
+ query_params,
4235
+ header_params,
4236
+ body=body_params,
4237
+ post_params=form_params,
4238
+ files=local_var_files,
4239
+ response_type='V1RefreshContainerRegistryCredentialsResponse', # noqa: E501
4240
+ auth_settings=auth_settings,
4241
+ async_req=params.get('async_req'),
4242
+ _return_http_data_only=params.get('_return_http_data_only'),
4243
+ _preload_content=params.get('_preload_content', True),
4244
+ _request_timeout=params.get('_request_timeout'),
4245
+ collection_formats=collection_formats)
4246
+
3843
4247
  def cluster_service_request_cluster_access(self, body: 'V1RequestClusterAccessRequest', **kwargs) -> 'V1RequestClusterAccessResponse': # noqa: E501
3844
4248
  """cluster_service_request_cluster_access # noqa: E501
3845
4249
 
@@ -4772,3 +5176,116 @@ class ClusterServiceApi(object):
4772
5176
  _preload_content=params.get('_preload_content', True),
4773
5177
  _request_timeout=params.get('_request_timeout'),
4774
5178
  collection_formats=collection_formats)
5179
+
5180
+ def cluster_service_validate_container_registry(self, body: 'ClusterServiceValidateContainerRegistryBody', cluster_id: 'str', registry_id: 'str', **kwargs) -> 'V1ValidateContainerRegistryResponse': # noqa: E501
5181
+ """Validate that Lightning can pull from a container registry # noqa: E501
5182
+
5183
+ This method makes a synchronous HTTP request by default. To make an
5184
+ asynchronous HTTP request, please pass async_req=True
5185
+ >>> thread = api.cluster_service_validate_container_registry(body, cluster_id, registry_id, async_req=True)
5186
+ >>> result = thread.get()
5187
+
5188
+ :param async_req bool
5189
+ :param ClusterServiceValidateContainerRegistryBody body: (required)
5190
+ :param str cluster_id: (required)
5191
+ :param str registry_id: (required)
5192
+ :return: V1ValidateContainerRegistryResponse
5193
+ If the method is called asynchronously,
5194
+ returns the request thread.
5195
+ """
5196
+ kwargs['_return_http_data_only'] = True
5197
+ if kwargs.get('async_req'):
5198
+ return self.cluster_service_validate_container_registry_with_http_info(body, cluster_id, registry_id, **kwargs) # noqa: E501
5199
+ else:
5200
+ (data) = self.cluster_service_validate_container_registry_with_http_info(body, cluster_id, registry_id, **kwargs) # noqa: E501
5201
+ return data
5202
+
5203
+ def cluster_service_validate_container_registry_with_http_info(self, body: 'ClusterServiceValidateContainerRegistryBody', cluster_id: 'str', registry_id: 'str', **kwargs) -> 'V1ValidateContainerRegistryResponse': # noqa: E501
5204
+ """Validate that Lightning can pull from a container registry # noqa: E501
5205
+
5206
+ This method makes a synchronous HTTP request by default. To make an
5207
+ asynchronous HTTP request, please pass async_req=True
5208
+ >>> thread = api.cluster_service_validate_container_registry_with_http_info(body, cluster_id, registry_id, async_req=True)
5209
+ >>> result = thread.get()
5210
+
5211
+ :param async_req bool
5212
+ :param ClusterServiceValidateContainerRegistryBody body: (required)
5213
+ :param str cluster_id: (required)
5214
+ :param str registry_id: (required)
5215
+ :return: V1ValidateContainerRegistryResponse
5216
+ If the method is called asynchronously,
5217
+ returns the request thread.
5218
+ """
5219
+
5220
+ all_params = ['body', 'cluster_id', 'registry_id'] # noqa: E501
5221
+ all_params.append('async_req')
5222
+ all_params.append('_return_http_data_only')
5223
+ all_params.append('_preload_content')
5224
+ all_params.append('_request_timeout')
5225
+
5226
+ params = locals()
5227
+ for key, val in six.iteritems(params['kwargs']):
5228
+ if key not in all_params:
5229
+ raise TypeError(
5230
+ "Got an unexpected keyword argument '%s'"
5231
+ " to method cluster_service_validate_container_registry" % key
5232
+ )
5233
+ params[key] = val
5234
+ del params['kwargs']
5235
+ # verify the required parameter 'body' is set
5236
+ if ('body' not in params or
5237
+ params['body'] is None):
5238
+ raise ValueError("Missing the required parameter `body` when calling `cluster_service_validate_container_registry`") # noqa: E501
5239
+ # verify the required parameter 'cluster_id' is set
5240
+ if ('cluster_id' not in params or
5241
+ params['cluster_id'] is None):
5242
+ raise ValueError("Missing the required parameter `cluster_id` when calling `cluster_service_validate_container_registry`") # noqa: E501
5243
+ # verify the required parameter 'registry_id' is set
5244
+ if ('registry_id' not in params or
5245
+ params['registry_id'] is None):
5246
+ raise ValueError("Missing the required parameter `registry_id` when calling `cluster_service_validate_container_registry`") # noqa: E501
5247
+
5248
+ collection_formats = {}
5249
+
5250
+ path_params = {}
5251
+ if 'cluster_id' in params:
5252
+ path_params['clusterId'] = params['cluster_id'] # noqa: E501
5253
+ if 'registry_id' in params:
5254
+ path_params['registryId'] = params['registry_id'] # noqa: E501
5255
+
5256
+ query_params = []
5257
+
5258
+ header_params = {}
5259
+
5260
+ form_params = []
5261
+ local_var_files = {}
5262
+
5263
+ body_params = None
5264
+ if 'body' in params:
5265
+ body_params = params['body']
5266
+ # HTTP header `Accept`
5267
+ header_params['Accept'] = self.api_client.select_header_accept(
5268
+ ['application/json']) # noqa: E501
5269
+
5270
+ # HTTP header `Content-Type`
5271
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
5272
+ ['application/json']) # noqa: E501
5273
+
5274
+ # Authentication setting
5275
+ auth_settings = [] # noqa: E501
5276
+
5277
+ return self.api_client.call_api(
5278
+ '/v1/clusters/{clusterId}/container-registries/{registryId}/validate', 'POST',
5279
+ path_params,
5280
+ query_params,
5281
+ header_params,
5282
+ body=body_params,
5283
+ post_params=form_params,
5284
+ files=local_var_files,
5285
+ response_type='V1ValidateContainerRegistryResponse', # noqa: E501
5286
+ auth_settings=auth_settings,
5287
+ async_req=params.get('async_req'),
5288
+ _return_http_data_only=params.get('_return_http_data_only'),
5289
+ _preload_content=params.get('_preload_content', True),
5290
+ _request_timeout=params.get('_request_timeout'),
5291
+ collection_formats=collection_formats)
@@ -366,6 +366,7 @@ class DataConnectionServiceApi(object):
366
366
  :param bool include_download_url:
367
367
  :param str cluster_id:
368
368
  :param bool local_index: if true, fetch from the local index
369
+ :param bool include_folder_index: if true, include the folder index in the response
369
370
  :return: V1GetArtifactsPageResponse
370
371
  If the method is called asynchronously,
371
372
  returns the request thread.
@@ -393,12 +394,13 @@ class DataConnectionServiceApi(object):
393
394
  :param bool include_download_url:
394
395
  :param str cluster_id:
395
396
  :param bool local_index: if true, fetch from the local index
397
+ :param bool include_folder_index: if true, include the folder index in the response
396
398
  :return: V1GetArtifactsPageResponse
397
399
  If the method is called asynchronously,
398
400
  returns the request thread.
399
401
  """
400
402
 
401
- all_params = ['project_id', 'id', 'page_number', 'prefix', 'include_download_url', 'cluster_id', 'local_index'] # noqa: E501
403
+ all_params = ['project_id', 'id', 'page_number', 'prefix', 'include_download_url', 'cluster_id', 'local_index', 'include_folder_index'] # noqa: E501
402
404
  all_params.append('async_req')
403
405
  all_params.append('_return_http_data_only')
404
406
  all_params.append('_preload_content')
@@ -441,6 +443,8 @@ class DataConnectionServiceApi(object):
441
443
  query_params.append(('clusterId', params['cluster_id'])) # noqa: E501
442
444
  if 'local_index' in params:
443
445
  query_params.append(('localIndex', params['local_index'])) # noqa: E501
446
+ if 'include_folder_index' in params:
447
+ query_params.append(('includeFolderIndex', params['include_folder_index'])) # noqa: E501
444
448
 
445
449
  header_params = {}
446
450
 
@@ -463,12 +463,12 @@ class FileSystemServiceApi(object):
463
463
  _request_timeout=params.get('_request_timeout'),
464
464
  collection_formats=collection_formats)
465
465
 
466
- def file_system_service_list_filesystem_mm_ts(self, project_id: 'str', current_id: 'str', **kwargs) -> 'V1ListFilesystemMMTsResponse': # noqa: E501
467
- """file_system_service_list_filesystem_mm_ts # noqa: E501
466
+ def file_system_service_list_filesystem_mmts(self, project_id: 'str', current_id: 'str', **kwargs) -> 'V1ListFilesystemMMTsResponse': # noqa: E501
467
+ """file_system_service_list_filesystem_mmts # noqa: E501
468
468
 
469
469
  This method makes a synchronous HTTP request by default. To make an
470
470
  asynchronous HTTP request, please pass async_req=True
471
- >>> thread = api.file_system_service_list_filesystem_mm_ts(project_id, current_id, async_req=True)
471
+ >>> thread = api.file_system_service_list_filesystem_mmts(project_id, current_id, async_req=True)
472
472
  >>> result = thread.get()
473
473
 
474
474
  :param async_req bool
@@ -481,17 +481,17 @@ class FileSystemServiceApi(object):
481
481
  """
482
482
  kwargs['_return_http_data_only'] = True
483
483
  if kwargs.get('async_req'):
484
- return self.file_system_service_list_filesystem_mm_ts_with_http_info(project_id, current_id, **kwargs) # noqa: E501
484
+ return self.file_system_service_list_filesystem_mmts_with_http_info(project_id, current_id, **kwargs) # noqa: E501
485
485
  else:
486
- (data) = self.file_system_service_list_filesystem_mm_ts_with_http_info(project_id, current_id, **kwargs) # noqa: E501
486
+ (data) = self.file_system_service_list_filesystem_mmts_with_http_info(project_id, current_id, **kwargs) # noqa: E501
487
487
  return data
488
488
 
489
- def file_system_service_list_filesystem_mm_ts_with_http_info(self, project_id: 'str', current_id: 'str', **kwargs) -> 'V1ListFilesystemMMTsResponse': # noqa: E501
490
- """file_system_service_list_filesystem_mm_ts # noqa: E501
489
+ def file_system_service_list_filesystem_mmts_with_http_info(self, project_id: 'str', current_id: 'str', **kwargs) -> 'V1ListFilesystemMMTsResponse': # noqa: E501
490
+ """file_system_service_list_filesystem_mmts # noqa: E501
491
491
 
492
492
  This method makes a synchronous HTTP request by default. To make an
493
493
  asynchronous HTTP request, please pass async_req=True
494
- >>> thread = api.file_system_service_list_filesystem_mm_ts_with_http_info(project_id, current_id, async_req=True)
494
+ >>> thread = api.file_system_service_list_filesystem_mmts_with_http_info(project_id, current_id, async_req=True)
495
495
  >>> result = thread.get()
496
496
 
497
497
  :param async_req bool
@@ -514,18 +514,18 @@ class FileSystemServiceApi(object):
514
514
  if key not in all_params:
515
515
  raise TypeError(
516
516
  "Got an unexpected keyword argument '%s'"
517
- " to method file_system_service_list_filesystem_mm_ts" % key
517
+ " to method file_system_service_list_filesystem_mmts" % key
518
518
  )
519
519
  params[key] = val
520
520
  del params['kwargs']
521
521
  # verify the required parameter 'project_id' is set
522
522
  if ('project_id' not in params or
523
523
  params['project_id'] is None):
524
- raise ValueError("Missing the required parameter `project_id` when calling `file_system_service_list_filesystem_mm_ts`") # noqa: E501
524
+ raise ValueError("Missing the required parameter `project_id` when calling `file_system_service_list_filesystem_mmts`") # noqa: E501
525
525
  # verify the required parameter 'current_id' is set
526
526
  if ('current_id' not in params or
527
527
  params['current_id'] is None):
528
- raise ValueError("Missing the required parameter `current_id` when calling `file_system_service_list_filesystem_mm_ts`") # noqa: E501
528
+ raise ValueError("Missing the required parameter `current_id` when calling `file_system_service_list_filesystem_mmts`") # noqa: E501
529
529
 
530
530
  collection_formats = {}
531
531