lightning-sdk 2025.12.9__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.
- lightning_sdk/__version__.py +1 -1
- lightning_sdk/api/job_api.py +16 -0
- lightning_sdk/api/org_api.py +7 -0
- lightning_sdk/api/studio_api.py +28 -3
- lightning_sdk/api/teamspace_api.py +42 -5
- lightning_sdk/api/user_api.py +5 -0
- lightning_sdk/cli/legacy/download.py +2 -1
- lightning_sdk/cli/legacy/studios_menu.py +8 -1
- lightning_sdk/job/base.py +26 -4
- lightning_sdk/job/job.py +16 -5
- lightning_sdk/job/v1.py +7 -2
- lightning_sdk/job/v2.py +41 -1
- lightning_sdk/lightning_cloud/openapi/__init__.py +26 -1
- lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
- lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +5 -1
- lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +517 -0
- lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +5 -1
- lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +11 -11
- lightning_sdk/lightning_cloud/openapi/api/kubernetes_virtual_machine_service_api.py +557 -0
- lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +5 -1
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +25 -1
- lightning_sdk/lightning_cloud/openapi/models/cloud_space_environment_template_service_update_cloud_space_environment_template_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/cluster_service_add_container_registry_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_machine_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/cluster_service_refresh_container_registry_credentials_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/cluster_service_validate_container_registry_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/kubernetes_virtual_machine_service_create_kubernetes_virtual_machine_body.py +513 -0
- lightning_sdk/lightning_cloud/openapi/models/kubernetes_virtual_machine_service_update_kubernetes_virtual_machine_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_add_container_registry_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_specialized_view.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_container_registry.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_info.py +281 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_integration.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_status.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_cloud_space_environment_template_request.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_container_registry_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_kubernetes_virtual_machine_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_ecr_registry_config.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_ecr_registry_config_input.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_ecr_registry_details.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_artifacts_page_response.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_virtual_machine.py +383 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_config.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_provider_configuration.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_vm_configuration.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_vm_resources.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_container_registries_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_virtual_machines_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_refresh_container_registry_credentials_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_search_user.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_container_registry_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/rest.py +2 -2
- lightning_sdk/machine.py +1 -0
- lightning_sdk/mmt/base.py +26 -7
- lightning_sdk/mmt/mmt.py +11 -6
- lightning_sdk/mmt/v1.py +5 -2
- lightning_sdk/mmt/v2.py +5 -2
- lightning_sdk/organization.py +10 -1
- lightning_sdk/owner.py +4 -0
- lightning_sdk/pipeline/steps.py +3 -0
- lightning_sdk/plugin.py +2 -2
- lightning_sdk/studio.py +33 -2
- lightning_sdk/teamspace.py +44 -4
- lightning_sdk/user.py +22 -2
- lightning_sdk/utils/resolve.py +9 -7
- {lightning_sdk-2025.12.9.dist-info → lightning_sdk-2025.12.17.dist-info}/METADATA +1 -1
- {lightning_sdk-2025.12.9.dist-info → lightning_sdk-2025.12.17.dist-info}/RECORD +78 -53
- /lightning_sdk/lightning_cloud/openapi/models/{v1_list_filesystem_mm_ts_response.py → v1_list_filesystem_mmts_response.py} +0 -0
- {lightning_sdk-2025.12.9.dist-info → lightning_sdk-2025.12.17.dist-info}/LICENSE +0 -0
- {lightning_sdk-2025.12.9.dist-info → lightning_sdk-2025.12.17.dist-info}/WHEEL +0 -0
- {lightning_sdk-2025.12.9.dist-info → lightning_sdk-2025.12.17.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-2025.12.9.dist-info → lightning_sdk-2025.12.17.dist-info}/top_level.txt +0 -0
lightning_sdk/lightning_cloud/openapi/models/v1_refresh_container_registry_credentials_response.py
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
external/v1/auth_service.proto
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
|
|
7
|
+
|
|
8
|
+
OpenAPI spec version: version not set
|
|
9
|
+
|
|
10
|
+
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
11
|
+
|
|
12
|
+
NOTE
|
|
13
|
+
----
|
|
14
|
+
standard swagger-codegen-cli for this python client has been modified
|
|
15
|
+
by custom templates. The purpose of these templates is to include
|
|
16
|
+
typing information in the API and Model code. Please refer to the
|
|
17
|
+
main grid repository for more info
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
import pprint
|
|
21
|
+
import re # noqa: F401
|
|
22
|
+
|
|
23
|
+
from typing import TYPE_CHECKING
|
|
24
|
+
|
|
25
|
+
import six
|
|
26
|
+
|
|
27
|
+
if TYPE_CHECKING:
|
|
28
|
+
from datetime import datetime
|
|
29
|
+
from lightning_sdk.lightning_cloud.openapi.models import *
|
|
30
|
+
|
|
31
|
+
class V1RefreshContainerRegistryCredentialsResponse(object):
|
|
32
|
+
"""NOTE: This class is auto generated by the swagger code generator program.
|
|
33
|
+
|
|
34
|
+
Do not edit the class manually.
|
|
35
|
+
"""
|
|
36
|
+
"""
|
|
37
|
+
Attributes:
|
|
38
|
+
swagger_types (dict): The key is attribute name
|
|
39
|
+
and the value is attribute type.
|
|
40
|
+
attribute_map (dict): The key is attribute name
|
|
41
|
+
and the value is json key in definition.
|
|
42
|
+
"""
|
|
43
|
+
swagger_types = {
|
|
44
|
+
'refreshed_at': 'datetime'
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
attribute_map = {
|
|
48
|
+
'refreshed_at': 'refreshedAt'
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
def __init__(self, refreshed_at: 'datetime' =None): # noqa: E501
|
|
52
|
+
"""V1RefreshContainerRegistryCredentialsResponse - a model defined in Swagger""" # noqa: E501
|
|
53
|
+
self._refreshed_at = None
|
|
54
|
+
self.discriminator = None
|
|
55
|
+
if refreshed_at is not None:
|
|
56
|
+
self.refreshed_at = refreshed_at
|
|
57
|
+
|
|
58
|
+
@property
|
|
59
|
+
def refreshed_at(self) -> 'datetime':
|
|
60
|
+
"""Gets the refreshed_at of this V1RefreshContainerRegistryCredentialsResponse. # noqa: E501
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
:return: The refreshed_at of this V1RefreshContainerRegistryCredentialsResponse. # noqa: E501
|
|
64
|
+
:rtype: datetime
|
|
65
|
+
"""
|
|
66
|
+
return self._refreshed_at
|
|
67
|
+
|
|
68
|
+
@refreshed_at.setter
|
|
69
|
+
def refreshed_at(self, refreshed_at: 'datetime'):
|
|
70
|
+
"""Sets the refreshed_at of this V1RefreshContainerRegistryCredentialsResponse.
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
:param refreshed_at: The refreshed_at of this V1RefreshContainerRegistryCredentialsResponse. # noqa: E501
|
|
74
|
+
:type: datetime
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
self._refreshed_at = refreshed_at
|
|
78
|
+
|
|
79
|
+
def to_dict(self) -> dict:
|
|
80
|
+
"""Returns the model properties as a dict"""
|
|
81
|
+
result = {}
|
|
82
|
+
|
|
83
|
+
for attr, _ in six.iteritems(self.swagger_types):
|
|
84
|
+
value = getattr(self, attr)
|
|
85
|
+
if isinstance(value, list):
|
|
86
|
+
result[attr] = list(map(
|
|
87
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
|
88
|
+
value
|
|
89
|
+
))
|
|
90
|
+
elif hasattr(value, "to_dict"):
|
|
91
|
+
result[attr] = value.to_dict()
|
|
92
|
+
elif isinstance(value, dict):
|
|
93
|
+
result[attr] = dict(map(
|
|
94
|
+
lambda item: (item[0], item[1].to_dict())
|
|
95
|
+
if hasattr(item[1], "to_dict") else item,
|
|
96
|
+
value.items()
|
|
97
|
+
))
|
|
98
|
+
else:
|
|
99
|
+
result[attr] = value
|
|
100
|
+
if issubclass(V1RefreshContainerRegistryCredentialsResponse, dict):
|
|
101
|
+
for key, value in self.items():
|
|
102
|
+
result[key] = value
|
|
103
|
+
|
|
104
|
+
return result
|
|
105
|
+
|
|
106
|
+
def to_str(self) -> str:
|
|
107
|
+
"""Returns the string representation of the model"""
|
|
108
|
+
return pprint.pformat(self.to_dict())
|
|
109
|
+
|
|
110
|
+
def __repr__(self) -> str:
|
|
111
|
+
"""For `print` and `pprint`"""
|
|
112
|
+
return self.to_str()
|
|
113
|
+
|
|
114
|
+
def __eq__(self, other: 'V1RefreshContainerRegistryCredentialsResponse') -> bool:
|
|
115
|
+
"""Returns true if both objects are equal"""
|
|
116
|
+
if not isinstance(other, V1RefreshContainerRegistryCredentialsResponse):
|
|
117
|
+
return False
|
|
118
|
+
|
|
119
|
+
return self.__dict__ == other.__dict__
|
|
120
|
+
|
|
121
|
+
def __ne__(self, other: 'V1RefreshContainerRegistryCredentialsResponse') -> bool:
|
|
122
|
+
"""Returns true if both objects are not equal"""
|
|
123
|
+
return not self == other
|
|
@@ -46,6 +46,7 @@ class V1SearchUser(object):
|
|
|
46
46
|
'email': 'str',
|
|
47
47
|
'first_name': 'str',
|
|
48
48
|
'id': 'str',
|
|
49
|
+
'internal': 'bool',
|
|
49
50
|
'last_name': 'str',
|
|
50
51
|
'organization': 'str',
|
|
51
52
|
'picture_url': 'str',
|
|
@@ -61,6 +62,7 @@ class V1SearchUser(object):
|
|
|
61
62
|
'email': 'email',
|
|
62
63
|
'first_name': 'firstName',
|
|
63
64
|
'id': 'id',
|
|
65
|
+
'internal': 'internal',
|
|
64
66
|
'last_name': 'lastName',
|
|
65
67
|
'organization': 'organization',
|
|
66
68
|
'picture_url': 'pictureUrl',
|
|
@@ -70,13 +72,14 @@ class V1SearchUser(object):
|
|
|
70
72
|
'website': 'website'
|
|
71
73
|
}
|
|
72
74
|
|
|
73
|
-
def __init__(self, auth_provider: 'str' =None, country: 'str' =None, email: 'str' =None, first_name: 'str' =None, id: 'str' =None, last_name: 'str' =None, organization: 'str' =None, picture_url: 'str' =None, project_memberships: 'list[str]' =None, role: 'str' =None, username: 'str' =None, website: 'str' =None): # noqa: E501
|
|
75
|
+
def __init__(self, auth_provider: 'str' =None, country: 'str' =None, email: 'str' =None, first_name: 'str' =None, id: 'str' =None, internal: 'bool' =None, last_name: 'str' =None, organization: 'str' =None, picture_url: 'str' =None, project_memberships: 'list[str]' =None, role: 'str' =None, username: 'str' =None, website: 'str' =None): # noqa: E501
|
|
74
76
|
"""V1SearchUser - a model defined in Swagger""" # noqa: E501
|
|
75
77
|
self._auth_provider = None
|
|
76
78
|
self._country = None
|
|
77
79
|
self._email = None
|
|
78
80
|
self._first_name = None
|
|
79
81
|
self._id = None
|
|
82
|
+
self._internal = None
|
|
80
83
|
self._last_name = None
|
|
81
84
|
self._organization = None
|
|
82
85
|
self._picture_url = None
|
|
@@ -95,6 +98,8 @@ class V1SearchUser(object):
|
|
|
95
98
|
self.first_name = first_name
|
|
96
99
|
if id is not None:
|
|
97
100
|
self.id = id
|
|
101
|
+
if internal is not None:
|
|
102
|
+
self.internal = internal
|
|
98
103
|
if last_name is not None:
|
|
99
104
|
self.last_name = last_name
|
|
100
105
|
if organization is not None:
|
|
@@ -215,6 +220,27 @@ class V1SearchUser(object):
|
|
|
215
220
|
|
|
216
221
|
self._id = id
|
|
217
222
|
|
|
223
|
+
@property
|
|
224
|
+
def internal(self) -> 'bool':
|
|
225
|
+
"""Gets the internal of this V1SearchUser. # noqa: E501
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
:return: The internal of this V1SearchUser. # noqa: E501
|
|
229
|
+
:rtype: bool
|
|
230
|
+
"""
|
|
231
|
+
return self._internal
|
|
232
|
+
|
|
233
|
+
@internal.setter
|
|
234
|
+
def internal(self, internal: 'bool'):
|
|
235
|
+
"""Sets the internal of this V1SearchUser.
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
:param internal: The internal of this V1SearchUser. # noqa: E501
|
|
239
|
+
:type: bool
|
|
240
|
+
"""
|
|
241
|
+
|
|
242
|
+
self._internal = internal
|
|
243
|
+
|
|
218
244
|
@property
|
|
219
245
|
def last_name(self) -> 'str':
|
|
220
246
|
"""Gets the last_name of this V1SearchUser. # noqa: E501
|
|
@@ -93,6 +93,9 @@ class V1UserFeatures(object):
|
|
|
93
93
|
'f284': 'bool',
|
|
94
94
|
'f285': 'bool',
|
|
95
95
|
'f286': 'bool',
|
|
96
|
+
'f287': 'bool',
|
|
97
|
+
'f288': 'bool',
|
|
98
|
+
'f289': 'bool',
|
|
96
99
|
'fair_share': 'bool',
|
|
97
100
|
'featured_studios_admin': 'bool',
|
|
98
101
|
'job_artifacts_v2': 'bool',
|
|
@@ -184,6 +187,9 @@ class V1UserFeatures(object):
|
|
|
184
187
|
'f284': 'f284',
|
|
185
188
|
'f285': 'f285',
|
|
186
189
|
'f286': 'f286',
|
|
190
|
+
'f287': 'f287',
|
|
191
|
+
'f288': 'f288',
|
|
192
|
+
'f289': 'f289',
|
|
187
193
|
'fair_share': 'fairShare',
|
|
188
194
|
'featured_studios_admin': 'featuredStudiosAdmin',
|
|
189
195
|
'job_artifacts_v2': 'jobArtifactsV2',
|
|
@@ -222,7 +228,7 @@ class V1UserFeatures(object):
|
|
|
222
228
|
'weka': 'weka'
|
|
223
229
|
}
|
|
224
230
|
|
|
225
|
-
def __init__(self, affiliate_links: 'bool' =None, agents_v2: 'bool' =None, ai_hub_monetization: 'bool' =None, auto_fast_load: 'bool' =None, b2c_experience: 'bool' =None, byo_machine_type: 'bool' =None, cap_add: 'list[str]' =None, cap_drop: 'list[str]' =None, capacity_reservation_byoc: 'bool' =None, capacity_reservation_dry_run: 'bool' =None, chat_models: 'bool' =None, cloudspace_schedules: 'bool' =None, code_tab: 'bool' =None, collab_screen_sharing: 'bool' =None, control_center_monitoring: 'bool' =None, cost_attribution_settings: 'bool' =None, datasets: 'bool' =None, default_one_cluster: 'bool' =None, drive_v2: 'bool' =None, enterprise_compute_admin: 'bool' =None, f234: 'bool' =None, f236: 'bool' =None, f240: 'bool' =None, f241: 'bool' =None, f243: 'bool' =None, f245: 'bool' =None, f247: 'bool' =None, f250: 'bool' =None, f252: 'bool' =None, f253: 'bool' =None, f254: 'bool' =None, f258: 'bool' =None, f259: 'bool' =None, f265: 'bool' =None, f266: 'bool' =None, f268: 'bool' =None, f270: 'bool' =None, f271: 'bool' =None, f272: 'bool' =None, f273: 'bool' =None, f274: 'bool' =None, f275: 'bool' =None, f276: 'bool' =None, f278: 'bool' =None, f279: 'bool' =None, f280: 'bool' =None, f281: 'bool' =None, f282: 'bool' =None, f283: 'bool' =None, f284: 'bool' =None, f285: 'bool' =None, f286: 'bool' =None, fair_share: 'bool' =None, featured_studios_admin: 'bool' =None, job_artifacts_v2: 'bool' =None, kubernetes_cluster_ui: 'bool' =None, kubernetes_clusters: 'bool' =None, landing_studios: 'bool' =None, marketplace: 'bool' =None, mmt_fault_tolerance: 'bool' =None, mmt_strategy_selector: 'bool' =None, multiple_studio_versions: 'bool' =None, nerf_fs_nonpaying: 'bool' =None, org_level_member_permissions: 'bool' =None, org_usage_limits: 'bool' =None, persistent_disk: 'bool' =None, plugin_distributed: 'bool' =None, plugin_inference: 'bool' =None, plugin_label_studio: 'bool' =None, plugin_langflow: 'bool' =None, plugin_python_profiler: 'bool' =None, plugin_sweeps: 'bool' =None, product_generator: 'bool' =None, product_license: 'bool' =None, project_selector: 'bool' =None, publish_pipelines: 'bool' =None, reserved_machines_tab: 'bool' =None, restartable_jobs: 'bool' =None, runnable_public_studio_page: 'bool' =None, security_docs: 'bool' =None, show_dev_admin: 'bool' =None, slurm: 'bool' =None, specialised_studios: 'bool' =None, storage_overuse_deletion: 'bool' =None, studio_config: 'bool' =None, studio_version_visibility: 'bool' =None, vultr: 'bool' =None, weka: 'bool' =None): # noqa: E501
|
|
231
|
+
def __init__(self, affiliate_links: 'bool' =None, agents_v2: 'bool' =None, ai_hub_monetization: 'bool' =None, auto_fast_load: 'bool' =None, b2c_experience: 'bool' =None, byo_machine_type: 'bool' =None, cap_add: 'list[str]' =None, cap_drop: 'list[str]' =None, capacity_reservation_byoc: 'bool' =None, capacity_reservation_dry_run: 'bool' =None, chat_models: 'bool' =None, cloudspace_schedules: 'bool' =None, code_tab: 'bool' =None, collab_screen_sharing: 'bool' =None, control_center_monitoring: 'bool' =None, cost_attribution_settings: 'bool' =None, datasets: 'bool' =None, default_one_cluster: 'bool' =None, drive_v2: 'bool' =None, enterprise_compute_admin: 'bool' =None, f234: 'bool' =None, f236: 'bool' =None, f240: 'bool' =None, f241: 'bool' =None, f243: 'bool' =None, f245: 'bool' =None, f247: 'bool' =None, f250: 'bool' =None, f252: 'bool' =None, f253: 'bool' =None, f254: 'bool' =None, f258: 'bool' =None, f259: 'bool' =None, f265: 'bool' =None, f266: 'bool' =None, f268: 'bool' =None, f270: 'bool' =None, f271: 'bool' =None, f272: 'bool' =None, f273: 'bool' =None, f274: 'bool' =None, f275: 'bool' =None, f276: 'bool' =None, f278: 'bool' =None, f279: 'bool' =None, f280: 'bool' =None, f281: 'bool' =None, f282: 'bool' =None, f283: 'bool' =None, f284: 'bool' =None, f285: 'bool' =None, f286: 'bool' =None, f287: 'bool' =None, f288: 'bool' =None, f289: 'bool' =None, fair_share: 'bool' =None, featured_studios_admin: 'bool' =None, job_artifacts_v2: 'bool' =None, kubernetes_cluster_ui: 'bool' =None, kubernetes_clusters: 'bool' =None, landing_studios: 'bool' =None, marketplace: 'bool' =None, mmt_fault_tolerance: 'bool' =None, mmt_strategy_selector: 'bool' =None, multiple_studio_versions: 'bool' =None, nerf_fs_nonpaying: 'bool' =None, org_level_member_permissions: 'bool' =None, org_usage_limits: 'bool' =None, persistent_disk: 'bool' =None, plugin_distributed: 'bool' =None, plugin_inference: 'bool' =None, plugin_label_studio: 'bool' =None, plugin_langflow: 'bool' =None, plugin_python_profiler: 'bool' =None, plugin_sweeps: 'bool' =None, product_generator: 'bool' =None, product_license: 'bool' =None, project_selector: 'bool' =None, publish_pipelines: 'bool' =None, reserved_machines_tab: 'bool' =None, restartable_jobs: 'bool' =None, runnable_public_studio_page: 'bool' =None, security_docs: 'bool' =None, show_dev_admin: 'bool' =None, slurm: 'bool' =None, specialised_studios: 'bool' =None, storage_overuse_deletion: 'bool' =None, studio_config: 'bool' =None, studio_version_visibility: 'bool' =None, vultr: 'bool' =None, weka: 'bool' =None): # noqa: E501
|
|
226
232
|
"""V1UserFeatures - a model defined in Swagger""" # noqa: E501
|
|
227
233
|
self._affiliate_links = None
|
|
228
234
|
self._agents_v2 = None
|
|
@@ -276,6 +282,9 @@ class V1UserFeatures(object):
|
|
|
276
282
|
self._f284 = None
|
|
277
283
|
self._f285 = None
|
|
278
284
|
self._f286 = None
|
|
285
|
+
self._f287 = None
|
|
286
|
+
self._f288 = None
|
|
287
|
+
self._f289 = None
|
|
279
288
|
self._fair_share = None
|
|
280
289
|
self._featured_studios_admin = None
|
|
281
290
|
self._job_artifacts_v2 = None
|
|
@@ -417,6 +426,12 @@ class V1UserFeatures(object):
|
|
|
417
426
|
self.f285 = f285
|
|
418
427
|
if f286 is not None:
|
|
419
428
|
self.f286 = f286
|
|
429
|
+
if f287 is not None:
|
|
430
|
+
self.f287 = f287
|
|
431
|
+
if f288 is not None:
|
|
432
|
+
self.f288 = f288
|
|
433
|
+
if f289 is not None:
|
|
434
|
+
self.f289 = f289
|
|
420
435
|
if fair_share is not None:
|
|
421
436
|
self.fair_share = fair_share
|
|
422
437
|
if featured_studios_admin is not None:
|
|
@@ -1582,6 +1597,69 @@ class V1UserFeatures(object):
|
|
|
1582
1597
|
|
|
1583
1598
|
self._f286 = f286
|
|
1584
1599
|
|
|
1600
|
+
@property
|
|
1601
|
+
def f287(self) -> 'bool':
|
|
1602
|
+
"""Gets the f287 of this V1UserFeatures. # noqa: E501
|
|
1603
|
+
|
|
1604
|
+
|
|
1605
|
+
:return: The f287 of this V1UserFeatures. # noqa: E501
|
|
1606
|
+
:rtype: bool
|
|
1607
|
+
"""
|
|
1608
|
+
return self._f287
|
|
1609
|
+
|
|
1610
|
+
@f287.setter
|
|
1611
|
+
def f287(self, f287: 'bool'):
|
|
1612
|
+
"""Sets the f287 of this V1UserFeatures.
|
|
1613
|
+
|
|
1614
|
+
|
|
1615
|
+
:param f287: The f287 of this V1UserFeatures. # noqa: E501
|
|
1616
|
+
:type: bool
|
|
1617
|
+
"""
|
|
1618
|
+
|
|
1619
|
+
self._f287 = f287
|
|
1620
|
+
|
|
1621
|
+
@property
|
|
1622
|
+
def f288(self) -> 'bool':
|
|
1623
|
+
"""Gets the f288 of this V1UserFeatures. # noqa: E501
|
|
1624
|
+
|
|
1625
|
+
|
|
1626
|
+
:return: The f288 of this V1UserFeatures. # noqa: E501
|
|
1627
|
+
:rtype: bool
|
|
1628
|
+
"""
|
|
1629
|
+
return self._f288
|
|
1630
|
+
|
|
1631
|
+
@f288.setter
|
|
1632
|
+
def f288(self, f288: 'bool'):
|
|
1633
|
+
"""Sets the f288 of this V1UserFeatures.
|
|
1634
|
+
|
|
1635
|
+
|
|
1636
|
+
:param f288: The f288 of this V1UserFeatures. # noqa: E501
|
|
1637
|
+
:type: bool
|
|
1638
|
+
"""
|
|
1639
|
+
|
|
1640
|
+
self._f288 = f288
|
|
1641
|
+
|
|
1642
|
+
@property
|
|
1643
|
+
def f289(self) -> 'bool':
|
|
1644
|
+
"""Gets the f289 of this V1UserFeatures. # noqa: E501
|
|
1645
|
+
|
|
1646
|
+
|
|
1647
|
+
:return: The f289 of this V1UserFeatures. # noqa: E501
|
|
1648
|
+
:rtype: bool
|
|
1649
|
+
"""
|
|
1650
|
+
return self._f289
|
|
1651
|
+
|
|
1652
|
+
@f289.setter
|
|
1653
|
+
def f289(self, f289: 'bool'):
|
|
1654
|
+
"""Sets the f289 of this V1UserFeatures.
|
|
1655
|
+
|
|
1656
|
+
|
|
1657
|
+
:param f289: The f289 of this V1UserFeatures. # noqa: E501
|
|
1658
|
+
:type: bool
|
|
1659
|
+
"""
|
|
1660
|
+
|
|
1661
|
+
self._f289 = f289
|
|
1662
|
+
|
|
1585
1663
|
@property
|
|
1586
1664
|
def fair_share(self) -> 'bool':
|
|
1587
1665
|
"""Gets the fair_share of this V1UserFeatures. # noqa: E501
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
external/v1/auth_service.proto
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
|
|
7
|
+
|
|
8
|
+
OpenAPI spec version: version not set
|
|
9
|
+
|
|
10
|
+
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
11
|
+
|
|
12
|
+
NOTE
|
|
13
|
+
----
|
|
14
|
+
standard swagger-codegen-cli for this python client has been modified
|
|
15
|
+
by custom templates. The purpose of these templates is to include
|
|
16
|
+
typing information in the API and Model code. Please refer to the
|
|
17
|
+
main grid repository for more info
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
import pprint
|
|
21
|
+
import re # noqa: F401
|
|
22
|
+
|
|
23
|
+
from typing import TYPE_CHECKING
|
|
24
|
+
|
|
25
|
+
import six
|
|
26
|
+
|
|
27
|
+
if TYPE_CHECKING:
|
|
28
|
+
from datetime import datetime
|
|
29
|
+
from lightning_sdk.lightning_cloud.openapi.models import *
|
|
30
|
+
|
|
31
|
+
class V1ValidateContainerRegistryResponse(object):
|
|
32
|
+
"""NOTE: This class is auto generated by the swagger code generator program.
|
|
33
|
+
|
|
34
|
+
Do not edit the class manually.
|
|
35
|
+
"""
|
|
36
|
+
"""
|
|
37
|
+
Attributes:
|
|
38
|
+
swagger_types (dict): The key is attribute name
|
|
39
|
+
and the value is attribute type.
|
|
40
|
+
attribute_map (dict): The key is attribute name
|
|
41
|
+
and the value is json key in definition.
|
|
42
|
+
"""
|
|
43
|
+
swagger_types = {
|
|
44
|
+
'message': 'str',
|
|
45
|
+
'valid': 'bool'
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
attribute_map = {
|
|
49
|
+
'message': 'message',
|
|
50
|
+
'valid': 'valid'
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
def __init__(self, message: 'str' =None, valid: 'bool' =None): # noqa: E501
|
|
54
|
+
"""V1ValidateContainerRegistryResponse - a model defined in Swagger""" # noqa: E501
|
|
55
|
+
self._message = None
|
|
56
|
+
self._valid = None
|
|
57
|
+
self.discriminator = None
|
|
58
|
+
if message is not None:
|
|
59
|
+
self.message = message
|
|
60
|
+
if valid is not None:
|
|
61
|
+
self.valid = valid
|
|
62
|
+
|
|
63
|
+
@property
|
|
64
|
+
def message(self) -> 'str':
|
|
65
|
+
"""Gets the message of this V1ValidateContainerRegistryResponse. # noqa: E501
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
:return: The message of this V1ValidateContainerRegistryResponse. # noqa: E501
|
|
69
|
+
:rtype: str
|
|
70
|
+
"""
|
|
71
|
+
return self._message
|
|
72
|
+
|
|
73
|
+
@message.setter
|
|
74
|
+
def message(self, message: 'str'):
|
|
75
|
+
"""Sets the message of this V1ValidateContainerRegistryResponse.
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
:param message: The message of this V1ValidateContainerRegistryResponse. # noqa: E501
|
|
79
|
+
:type: str
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
self._message = message
|
|
83
|
+
|
|
84
|
+
@property
|
|
85
|
+
def valid(self) -> 'bool':
|
|
86
|
+
"""Gets the valid of this V1ValidateContainerRegistryResponse. # noqa: E501
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
:return: The valid of this V1ValidateContainerRegistryResponse. # noqa: E501
|
|
90
|
+
:rtype: bool
|
|
91
|
+
"""
|
|
92
|
+
return self._valid
|
|
93
|
+
|
|
94
|
+
@valid.setter
|
|
95
|
+
def valid(self, valid: 'bool'):
|
|
96
|
+
"""Sets the valid of this V1ValidateContainerRegistryResponse.
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
:param valid: The valid of this V1ValidateContainerRegistryResponse. # noqa: E501
|
|
100
|
+
:type: bool
|
|
101
|
+
"""
|
|
102
|
+
|
|
103
|
+
self._valid = valid
|
|
104
|
+
|
|
105
|
+
def to_dict(self) -> dict:
|
|
106
|
+
"""Returns the model properties as a dict"""
|
|
107
|
+
result = {}
|
|
108
|
+
|
|
109
|
+
for attr, _ in six.iteritems(self.swagger_types):
|
|
110
|
+
value = getattr(self, attr)
|
|
111
|
+
if isinstance(value, list):
|
|
112
|
+
result[attr] = list(map(
|
|
113
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
|
114
|
+
value
|
|
115
|
+
))
|
|
116
|
+
elif hasattr(value, "to_dict"):
|
|
117
|
+
result[attr] = value.to_dict()
|
|
118
|
+
elif isinstance(value, dict):
|
|
119
|
+
result[attr] = dict(map(
|
|
120
|
+
lambda item: (item[0], item[1].to_dict())
|
|
121
|
+
if hasattr(item[1], "to_dict") else item,
|
|
122
|
+
value.items()
|
|
123
|
+
))
|
|
124
|
+
else:
|
|
125
|
+
result[attr] = value
|
|
126
|
+
if issubclass(V1ValidateContainerRegistryResponse, dict):
|
|
127
|
+
for key, value in self.items():
|
|
128
|
+
result[key] = value
|
|
129
|
+
|
|
130
|
+
return result
|
|
131
|
+
|
|
132
|
+
def to_str(self) -> str:
|
|
133
|
+
"""Returns the string representation of the model"""
|
|
134
|
+
return pprint.pformat(self.to_dict())
|
|
135
|
+
|
|
136
|
+
def __repr__(self) -> str:
|
|
137
|
+
"""For `print` and `pprint`"""
|
|
138
|
+
return self.to_str()
|
|
139
|
+
|
|
140
|
+
def __eq__(self, other: 'V1ValidateContainerRegistryResponse') -> bool:
|
|
141
|
+
"""Returns true if both objects are equal"""
|
|
142
|
+
if not isinstance(other, V1ValidateContainerRegistryResponse):
|
|
143
|
+
return False
|
|
144
|
+
|
|
145
|
+
return self.__dict__ == other.__dict__
|
|
146
|
+
|
|
147
|
+
def __ne__(self, other: 'V1ValidateContainerRegistryResponse') -> bool:
|
|
148
|
+
"""Returns true if both objects are not equal"""
|
|
149
|
+
return not self == other
|
|
@@ -49,11 +49,11 @@ class RESTResponse(io.IOBase):
|
|
|
49
49
|
|
|
50
50
|
def getheaders(self):
|
|
51
51
|
"""Returns a dictionary of the response headers."""
|
|
52
|
-
return self.urllib3_response.
|
|
52
|
+
return self.urllib3_response.headers
|
|
53
53
|
|
|
54
54
|
def getheader(self, name, default=None):
|
|
55
55
|
"""Returns a given response header."""
|
|
56
|
-
return self.urllib3_response.
|
|
56
|
+
return self.urllib3_response.headers.get(name, default)
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
class RESTClientObject(object):
|
lightning_sdk/machine.py
CHANGED
|
@@ -92,6 +92,7 @@ class Machine:
|
|
|
92
92
|
accelerator_count: Optional[int] = None
|
|
93
93
|
cost: Optional[float] = None
|
|
94
94
|
interruptible_cost: Optional[float] = None
|
|
95
|
+
provider: Optional[str] = None
|
|
95
96
|
wait_time: Optional[float] = None
|
|
96
97
|
interruptible_wait_time: Optional[float] = None
|
|
97
98
|
_include_in_cli: bool = True
|
lightning_sdk/mmt/base.py
CHANGED
|
@@ -69,7 +69,7 @@ class _BaseMMT(_BaseJob):
|
|
|
69
69
|
interruptible: bool = False,
|
|
70
70
|
image_credentials: Optional[str] = None,
|
|
71
71
|
cloud_account_auth: bool = False,
|
|
72
|
-
entrypoint: str =
|
|
72
|
+
entrypoint: Optional[str] = None,
|
|
73
73
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
74
74
|
max_runtime: Optional[int] = None,
|
|
75
75
|
artifacts_local: Optional[str] = None, # deprecated in favor of path_mappings
|
|
@@ -104,8 +104,10 @@ class _BaseMMT(_BaseJob):
|
|
|
104
104
|
cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
|
|
105
105
|
Required if the registry is part of a cloud provider (e.g. ECR).
|
|
106
106
|
entrypoint: The entrypoint of your docker container. Defaults to `sh -c` which
|
|
107
|
-
just runs the provided command in a standard shell.
|
|
108
|
-
|
|
107
|
+
just runs the provided command in a standard shell if a command is provided.
|
|
108
|
+
If no command is provided, it will run the pre-defined entrypoint of the provided image.
|
|
109
|
+
To use the pre-defined entrypoint of the provided image with a specified command,
|
|
110
|
+
set this to an empty string.
|
|
109
111
|
Only applicable when submitting docker jobs.
|
|
110
112
|
path_mappings: Dictionary of path mappings. The keys are the path inside the container whereas the value
|
|
111
113
|
represents the data-connection name and the path inside that connection.
|
|
@@ -173,7 +175,7 @@ class _BaseMMT(_BaseJob):
|
|
|
173
175
|
"Other jobs will automatically persist artifacts to the teamspace distributed filesystem."
|
|
174
176
|
)
|
|
175
177
|
|
|
176
|
-
if entrypoint
|
|
178
|
+
if entrypoint is not None:
|
|
177
179
|
raise ValueError("Specifying the entrypoint has no effect for jobs with Studio envs.")
|
|
178
180
|
|
|
179
181
|
else:
|
|
@@ -199,6 +201,20 @@ class _BaseMMT(_BaseJob):
|
|
|
199
201
|
f"<CONNECTION_TYPE>:<CONNECTION_NAME>:<PATH_WITHIN_CONNECTION>, got {artifacts_local}"
|
|
200
202
|
)
|
|
201
203
|
|
|
204
|
+
# command specified, so use the default entrypoint of sh -c
|
|
205
|
+
if command is not None and entrypoint is None:
|
|
206
|
+
entrypoint = "sh -c"
|
|
207
|
+
|
|
208
|
+
# entrypoint specifically set to empty string, so set to None here to fall back to the image entrypoint
|
|
209
|
+
elif entrypoint == "": # noqa: SIM114
|
|
210
|
+
entrypoint = None
|
|
211
|
+
|
|
212
|
+
# entrypoint not specified, but also no command specified, so use the image entrypoint
|
|
213
|
+
elif entrypoint is None:
|
|
214
|
+
entrypoint = None
|
|
215
|
+
|
|
216
|
+
# all other cases, the entrypoint has been specifically set, so use it as is
|
|
217
|
+
|
|
202
218
|
inst = cls(name=name, teamspace=teamspace, org=org, user=user, _fetch_job=False)
|
|
203
219
|
inst._submit(
|
|
204
220
|
num_machines=num_machines,
|
|
@@ -235,7 +251,7 @@ class _BaseMMT(_BaseJob):
|
|
|
235
251
|
cloud_provider: Optional[Union["CloudProvider", str]] = None,
|
|
236
252
|
image_credentials: Optional[str] = None,
|
|
237
253
|
cloud_account_auth: bool = False,
|
|
238
|
-
entrypoint: str =
|
|
254
|
+
entrypoint: Optional[str] = None,
|
|
239
255
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
240
256
|
artifacts_local: Optional[str] = None, # deprecated in favor of path_mappings
|
|
241
257
|
artifacts_remote: Optional[str] = None, # deprecated in favor of path_mappings
|
|
@@ -260,8 +276,11 @@ class _BaseMMT(_BaseJob):
|
|
|
260
276
|
This should be the name of the respective credentials secret created on the Lightning AI platform.
|
|
261
277
|
cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
|
|
262
278
|
Required if the registry is part of a cloud provider (e.g. ECR).
|
|
263
|
-
entrypoint: The entrypoint of your docker container. Defaults to sh -c
|
|
264
|
-
|
|
279
|
+
entrypoint: The entrypoint of your docker container. Defaults to `sh -c` which
|
|
280
|
+
just runs the provided command in a standard shell if a command is provided.
|
|
281
|
+
If no command is provided, it will run the pre-defined entrypoint of the provided image.
|
|
282
|
+
To use the pre-defined entrypoint of the provided image with a specified command,
|
|
283
|
+
set this to an empty string.
|
|
265
284
|
Only applicable when submitting docker jobs.
|
|
266
285
|
path_mappings: Dictionary of path mappings. The keys are the path inside the container whereas the value
|
|
267
286
|
represents the data-connection name and the path inside that connection.
|
lightning_sdk/mmt/mmt.py
CHANGED
|
@@ -100,7 +100,7 @@ class MMT(_BaseMMT):
|
|
|
100
100
|
interruptible: bool = False,
|
|
101
101
|
image_credentials: Optional[str] = None,
|
|
102
102
|
cloud_account_auth: bool = False,
|
|
103
|
-
entrypoint: str =
|
|
103
|
+
entrypoint: Optional[str] = None,
|
|
104
104
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
105
105
|
max_runtime: Optional[int] = None,
|
|
106
106
|
artifacts_local: Optional[str] = None,
|
|
@@ -134,8 +134,11 @@ class MMT(_BaseMMT):
|
|
|
134
134
|
This should be the name of the respective credentials secret created on the Lightning AI platform.
|
|
135
135
|
cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
|
|
136
136
|
Required if the registry is part of a cloud provider (e.g. ECR).
|
|
137
|
-
entrypoint: The entrypoint of your docker container. Defaults to sh -c
|
|
138
|
-
|
|
137
|
+
entrypoint: The entrypoint of your docker container. Defaults to `sh -c` which
|
|
138
|
+
just runs the provided command in a standard shell if a command is provided.
|
|
139
|
+
If no command is provided, it will run the pre-defined entrypoint of the provided image.
|
|
140
|
+
To use the pre-defined entrypoint of the provided image with a specified command,
|
|
141
|
+
set this to an empty string.
|
|
139
142
|
Only applicable when submitting docker jobs.
|
|
140
143
|
path_mappings: Dictionary of path mappings. The keys are the path inside the container whereas the value
|
|
141
144
|
represents the data-connection name and the path inside that connection.
|
|
@@ -194,7 +197,7 @@ class MMT(_BaseMMT):
|
|
|
194
197
|
cloud_provider: Optional[Union["CloudProvider", str]] = None,
|
|
195
198
|
image_credentials: Optional[str] = None,
|
|
196
199
|
cloud_account_auth: bool = False,
|
|
197
|
-
entrypoint: str =
|
|
200
|
+
entrypoint: Optional[str] = None,
|
|
198
201
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
199
202
|
max_runtime: Optional[int] = None,
|
|
200
203
|
artifacts_local: Optional[str] = None, # deprecated in favor of path_mappings
|
|
@@ -224,8 +227,10 @@ class MMT(_BaseMMT):
|
|
|
224
227
|
cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
|
|
225
228
|
Required if the registry is part of a cloud provider (e.g. ECR).
|
|
226
229
|
entrypoint: The entrypoint of your docker container. Defaults to `sh -c` which
|
|
227
|
-
just runs the provided command in a standard shell.
|
|
228
|
-
|
|
230
|
+
just runs the provided command in a standard shell if a command is provided.
|
|
231
|
+
If no command is provided, it will run the pre-defined entrypoint of the provided image.
|
|
232
|
+
To use the pre-defined entrypoint of the provided image with a specified command,
|
|
233
|
+
set this to an empty string.
|
|
229
234
|
Only applicable when submitting docker jobs.
|
|
230
235
|
path_mappings: Dictionary of path mappings. The keys are the path inside the container whereas the value
|
|
231
236
|
represents the data-connection name and the path inside that connection.
|
lightning_sdk/mmt/v1.py
CHANGED
|
@@ -53,7 +53,7 @@ class _MMTV1(_BaseMMT):
|
|
|
53
53
|
cloud_provider: Optional[Union["CloudProvider", str]] = None,
|
|
54
54
|
image_credentials: Optional[str] = None,
|
|
55
55
|
cloud_account_auth: bool = False,
|
|
56
|
-
entrypoint: str =
|
|
56
|
+
entrypoint: Optional[str] = None,
|
|
57
57
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
58
58
|
max_runtime: Optional[int] = None,
|
|
59
59
|
artifacts_local: Optional[str] = None,
|
|
@@ -89,7 +89,10 @@ class _MMTV1(_BaseMMT):
|
|
|
89
89
|
Note that the connection needs to be added to the teamspace already in order for it to be found.
|
|
90
90
|
Only supported for jobs with a docker image compute environment.
|
|
91
91
|
entrypoint: The entrypoint of your docker container. Defaults to `sh -c` which
|
|
92
|
-
just runs the provided command in a standard shell.
|
|
92
|
+
just runs the provided command in a standard shell if a command is provided.
|
|
93
|
+
If no command is provided, it will run the pre-defined entrypoint of the provided image.
|
|
94
|
+
To use the pre-defined entrypoint of the provided image with a specified command,
|
|
95
|
+
set this to an empty string.
|
|
93
96
|
To use the pre-defined entrypoint of the provided image, set this to an empty string.
|
|
94
97
|
Only applicable when submitting docker jobs.
|
|
95
98
|
path_mappings: The mappings from data connection inside your container (not supported)
|
lightning_sdk/mmt/v2.py
CHANGED
|
@@ -53,7 +53,7 @@ class _MMTV2(_BaseMMT):
|
|
|
53
53
|
cloud_provider: Optional[Union["CloudProvider", str]] = None,
|
|
54
54
|
image_credentials: Optional[str] = None,
|
|
55
55
|
cloud_account_auth: bool = False,
|
|
56
|
-
entrypoint: str =
|
|
56
|
+
entrypoint: Optional[str] = None,
|
|
57
57
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
58
58
|
max_runtime: Optional[int] = None,
|
|
59
59
|
artifacts_local: Optional[str] = None, # deprecated in favor of path_mappings
|
|
@@ -83,7 +83,10 @@ class _MMTV2(_BaseMMT):
|
|
|
83
83
|
cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
|
|
84
84
|
Required if the registry is part of a cloud provider (e.g. ECR).
|
|
85
85
|
entrypoint: The entrypoint of your docker container. Defaults to `sh -c` which
|
|
86
|
-
just runs the provided command in a standard shell.
|
|
86
|
+
just runs the provided command in a standard shell if a command is provided.
|
|
87
|
+
If no command is provided, it will run the pre-defined entrypoint of the provided image.
|
|
88
|
+
To use the pre-defined entrypoint of the provided image with a specified command,
|
|
89
|
+
set this to an empty string.
|
|
87
90
|
To use the pre-defined entrypoint of the provided image, set this to an empty string.
|
|
88
91
|
Only applicable when submitting docker jobs.
|
|
89
92
|
path_mappings: Dictionary of path mappings. The keys are the path inside the container whereas the value
|