lightning-sdk 0.1.37__py3-none-any.whl → 0.1.38__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/__init__.py +1 -1
- lightning_sdk/ai_hub.py +21 -23
- lightning_sdk/api/ai_hub_api.py +29 -4
- lightning_sdk/api/job_api.py +6 -2
- lightning_sdk/api/teamspace_api.py +18 -14
- lightning_sdk/api/utils.py +19 -0
- lightning_sdk/cli/ai_hub.py +1 -1
- lightning_sdk/cli/run.py +8 -0
- lightning_sdk/job/base.py +13 -0
- lightning_sdk/job/job.py +8 -0
- lightning_sdk/job/v1.py +5 -1
- lightning_sdk/job/v2.py +4 -0
- lightning_sdk/lightning_cloud/openapi/__init__.py +13 -2
- lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +5 -1
- lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +680 -62
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +13 -2
- lightning_sdk/lightning_cloud/openapi/models/create.py +6 -32
- lightning_sdk/lightning_cloud/openapi/models/deploymenttemplates_id_body.py +32 -6
- lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/multimachinejobs_id_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/project_id_agents_body.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/project_id_multimachinejobs_body.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/update.py +6 -32
- lightning_sdk/lightning_cloud/openapi/models/v1_api_pricing_spec.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_template_request.py +32 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +6 -32
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_multi_machine_job_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_metrics.py +43 -17
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_performance.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template.py +32 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter_type.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_summary.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/{v1_efs_data_connection.py → v1_efs_config.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/v1_get_model_files_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_lambda_labs_direct_v1.py +125 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_multi_machine_jobs_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_machines_selector.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_message.py +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_message_content.py +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_message_content_type.py +103 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job.py +383 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_state.py +108 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_status.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_system_info.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_data_connection_response.py +6 -32
- lightning_sdk/lightning_cloud/openapi/models/validate.py +6 -32
- lightning_sdk/teamspace.py +5 -0
- {lightning_sdk-0.1.37.dist-info → lightning_sdk-0.1.38.dist-info}/METADATA +1 -1
- {lightning_sdk-0.1.37.dist-info → lightning_sdk-0.1.38.dist-info}/RECORD +61 -50
- lightning_sdk/lightning_cloud/openapi/models/v1_efs_folder_data_connection.py +0 -201
- {lightning_sdk-0.1.37.dist-info → lightning_sdk-0.1.38.dist-info}/LICENSE +0 -0
- {lightning_sdk-0.1.37.dist-info → lightning_sdk-0.1.38.dist-info}/WHEEL +0 -0
- {lightning_sdk-0.1.37.dist-info → lightning_sdk-0.1.38.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-0.1.37.dist-info → lightning_sdk-0.1.38.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,201 @@
|
|
|
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 ProjectIdMultimachinejobsBody(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
|
+
'cluster_id': 'str',
|
|
45
|
+
'machines': 'int',
|
|
46
|
+
'name': 'str',
|
|
47
|
+
'spec': 'V1JobSpec'
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
attribute_map = {
|
|
51
|
+
'cluster_id': 'clusterId',
|
|
52
|
+
'machines': 'machines',
|
|
53
|
+
'name': 'name',
|
|
54
|
+
'spec': 'spec'
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
def __init__(self, cluster_id: 'str' =None, machines: 'int' =None, name: 'str' =None, spec: 'V1JobSpec' =None): # noqa: E501
|
|
58
|
+
"""ProjectIdMultimachinejobsBody - a model defined in Swagger""" # noqa: E501
|
|
59
|
+
self._cluster_id = None
|
|
60
|
+
self._machines = None
|
|
61
|
+
self._name = None
|
|
62
|
+
self._spec = None
|
|
63
|
+
self.discriminator = None
|
|
64
|
+
if cluster_id is not None:
|
|
65
|
+
self.cluster_id = cluster_id
|
|
66
|
+
if machines is not None:
|
|
67
|
+
self.machines = machines
|
|
68
|
+
if name is not None:
|
|
69
|
+
self.name = name
|
|
70
|
+
if spec is not None:
|
|
71
|
+
self.spec = spec
|
|
72
|
+
|
|
73
|
+
@property
|
|
74
|
+
def cluster_id(self) -> 'str':
|
|
75
|
+
"""Gets the cluster_id of this ProjectIdMultimachinejobsBody. # noqa: E501
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
:return: The cluster_id of this ProjectIdMultimachinejobsBody. # noqa: E501
|
|
79
|
+
:rtype: str
|
|
80
|
+
"""
|
|
81
|
+
return self._cluster_id
|
|
82
|
+
|
|
83
|
+
@cluster_id.setter
|
|
84
|
+
def cluster_id(self, cluster_id: 'str'):
|
|
85
|
+
"""Sets the cluster_id of this ProjectIdMultimachinejobsBody.
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
:param cluster_id: The cluster_id of this ProjectIdMultimachinejobsBody. # noqa: E501
|
|
89
|
+
:type: str
|
|
90
|
+
"""
|
|
91
|
+
|
|
92
|
+
self._cluster_id = cluster_id
|
|
93
|
+
|
|
94
|
+
@property
|
|
95
|
+
def machines(self) -> 'int':
|
|
96
|
+
"""Gets the machines of this ProjectIdMultimachinejobsBody. # noqa: E501
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
:return: The machines of this ProjectIdMultimachinejobsBody. # noqa: E501
|
|
100
|
+
:rtype: int
|
|
101
|
+
"""
|
|
102
|
+
return self._machines
|
|
103
|
+
|
|
104
|
+
@machines.setter
|
|
105
|
+
def machines(self, machines: 'int'):
|
|
106
|
+
"""Sets the machines of this ProjectIdMultimachinejobsBody.
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
:param machines: The machines of this ProjectIdMultimachinejobsBody. # noqa: E501
|
|
110
|
+
:type: int
|
|
111
|
+
"""
|
|
112
|
+
|
|
113
|
+
self._machines = machines
|
|
114
|
+
|
|
115
|
+
@property
|
|
116
|
+
def name(self) -> 'str':
|
|
117
|
+
"""Gets the name of this ProjectIdMultimachinejobsBody. # noqa: E501
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
:return: The name of this ProjectIdMultimachinejobsBody. # noqa: E501
|
|
121
|
+
:rtype: str
|
|
122
|
+
"""
|
|
123
|
+
return self._name
|
|
124
|
+
|
|
125
|
+
@name.setter
|
|
126
|
+
def name(self, name: 'str'):
|
|
127
|
+
"""Sets the name of this ProjectIdMultimachinejobsBody.
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
:param name: The name of this ProjectIdMultimachinejobsBody. # noqa: E501
|
|
131
|
+
:type: str
|
|
132
|
+
"""
|
|
133
|
+
|
|
134
|
+
self._name = name
|
|
135
|
+
|
|
136
|
+
@property
|
|
137
|
+
def spec(self) -> 'V1JobSpec':
|
|
138
|
+
"""Gets the spec of this ProjectIdMultimachinejobsBody. # noqa: E501
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
:return: The spec of this ProjectIdMultimachinejobsBody. # noqa: E501
|
|
142
|
+
:rtype: V1JobSpec
|
|
143
|
+
"""
|
|
144
|
+
return self._spec
|
|
145
|
+
|
|
146
|
+
@spec.setter
|
|
147
|
+
def spec(self, spec: 'V1JobSpec'):
|
|
148
|
+
"""Sets the spec of this ProjectIdMultimachinejobsBody.
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
:param spec: The spec of this ProjectIdMultimachinejobsBody. # noqa: E501
|
|
152
|
+
:type: V1JobSpec
|
|
153
|
+
"""
|
|
154
|
+
|
|
155
|
+
self._spec = spec
|
|
156
|
+
|
|
157
|
+
def to_dict(self) -> dict:
|
|
158
|
+
"""Returns the model properties as a dict"""
|
|
159
|
+
result = {}
|
|
160
|
+
|
|
161
|
+
for attr, _ in six.iteritems(self.swagger_types):
|
|
162
|
+
value = getattr(self, attr)
|
|
163
|
+
if isinstance(value, list):
|
|
164
|
+
result[attr] = list(map(
|
|
165
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
|
166
|
+
value
|
|
167
|
+
))
|
|
168
|
+
elif hasattr(value, "to_dict"):
|
|
169
|
+
result[attr] = value.to_dict()
|
|
170
|
+
elif isinstance(value, dict):
|
|
171
|
+
result[attr] = dict(map(
|
|
172
|
+
lambda item: (item[0], item[1].to_dict())
|
|
173
|
+
if hasattr(item[1], "to_dict") else item,
|
|
174
|
+
value.items()
|
|
175
|
+
))
|
|
176
|
+
else:
|
|
177
|
+
result[attr] = value
|
|
178
|
+
if issubclass(ProjectIdMultimachinejobsBody, dict):
|
|
179
|
+
for key, value in self.items():
|
|
180
|
+
result[key] = value
|
|
181
|
+
|
|
182
|
+
return result
|
|
183
|
+
|
|
184
|
+
def to_str(self) -> str:
|
|
185
|
+
"""Returns the string representation of the model"""
|
|
186
|
+
return pprint.pformat(self.to_dict())
|
|
187
|
+
|
|
188
|
+
def __repr__(self) -> str:
|
|
189
|
+
"""For `print` and `pprint`"""
|
|
190
|
+
return self.to_str()
|
|
191
|
+
|
|
192
|
+
def __eq__(self, other: 'ProjectIdMultimachinejobsBody') -> bool:
|
|
193
|
+
"""Returns true if both objects are equal"""
|
|
194
|
+
if not isinstance(other, ProjectIdMultimachinejobsBody):
|
|
195
|
+
return False
|
|
196
|
+
|
|
197
|
+
return self.__dict__ == other.__dict__
|
|
198
|
+
|
|
199
|
+
def __ne__(self, other: 'ProjectIdMultimachinejobsBody') -> bool:
|
|
200
|
+
"""Returns true if both objects are not equal"""
|
|
201
|
+
return not self == other
|
|
@@ -42,8 +42,7 @@ class Update(object):
|
|
|
42
42
|
"""
|
|
43
43
|
swagger_types = {
|
|
44
44
|
'aws': 'V1AwsDataConnection',
|
|
45
|
-
'efs': '
|
|
46
|
-
'efs_folder': 'V1EFSFolderDataConnection',
|
|
45
|
+
'efs': 'V1EfsConfig',
|
|
47
46
|
'gcp': 'V1GcpDataConnection',
|
|
48
47
|
'gcs_folder': 'V1GCSFolderDataConnection',
|
|
49
48
|
'name': 'str',
|
|
@@ -56,7 +55,6 @@ class Update(object):
|
|
|
56
55
|
attribute_map = {
|
|
57
56
|
'aws': 'aws',
|
|
58
57
|
'efs': 'efs',
|
|
59
|
-
'efs_folder': 'efsFolder',
|
|
60
58
|
'gcp': 'gcp',
|
|
61
59
|
'gcs_folder': 'gcsFolder',
|
|
62
60
|
'name': 'name',
|
|
@@ -66,11 +64,10 @@ class Update(object):
|
|
|
66
64
|
'writable': 'writable'
|
|
67
65
|
}
|
|
68
66
|
|
|
69
|
-
def __init__(self, aws: 'V1AwsDataConnection' =None, efs: '
|
|
67
|
+
def __init__(self, aws: 'V1AwsDataConnection' =None, efs: 'V1EfsConfig' =None, gcp: 'V1GcpDataConnection' =None, gcs_folder: 'V1GCSFolderDataConnection' =None, name: 'str' =None, run_cmds: 'list[str]' =None, s3_folder: 'V1S3FolderDataConnection' =None, snowflake: 'V1SnowflakeDataConnection' =None, writable: 'bool' =None): # noqa: E501
|
|
70
68
|
"""Update - a model defined in Swagger""" # noqa: E501
|
|
71
69
|
self._aws = None
|
|
72
70
|
self._efs = None
|
|
73
|
-
self._efs_folder = None
|
|
74
71
|
self._gcp = None
|
|
75
72
|
self._gcs_folder = None
|
|
76
73
|
self._name = None
|
|
@@ -83,8 +80,6 @@ class Update(object):
|
|
|
83
80
|
self.aws = aws
|
|
84
81
|
if efs is not None:
|
|
85
82
|
self.efs = efs
|
|
86
|
-
if efs_folder is not None:
|
|
87
|
-
self.efs_folder = efs_folder
|
|
88
83
|
if gcp is not None:
|
|
89
84
|
self.gcp = gcp
|
|
90
85
|
if gcs_folder is not None:
|
|
@@ -122,47 +117,26 @@ class Update(object):
|
|
|
122
117
|
self._aws = aws
|
|
123
118
|
|
|
124
119
|
@property
|
|
125
|
-
def efs(self) -> '
|
|
120
|
+
def efs(self) -> 'V1EfsConfig':
|
|
126
121
|
"""Gets the efs of this Update. # noqa: E501
|
|
127
122
|
|
|
128
123
|
|
|
129
124
|
:return: The efs of this Update. # noqa: E501
|
|
130
|
-
:rtype:
|
|
125
|
+
:rtype: V1EfsConfig
|
|
131
126
|
"""
|
|
132
127
|
return self._efs
|
|
133
128
|
|
|
134
129
|
@efs.setter
|
|
135
|
-
def efs(self, efs: '
|
|
130
|
+
def efs(self, efs: 'V1EfsConfig'):
|
|
136
131
|
"""Sets the efs of this Update.
|
|
137
132
|
|
|
138
133
|
|
|
139
134
|
:param efs: The efs of this Update. # noqa: E501
|
|
140
|
-
:type:
|
|
135
|
+
:type: V1EfsConfig
|
|
141
136
|
"""
|
|
142
137
|
|
|
143
138
|
self._efs = efs
|
|
144
139
|
|
|
145
|
-
@property
|
|
146
|
-
def efs_folder(self) -> 'V1EFSFolderDataConnection':
|
|
147
|
-
"""Gets the efs_folder of this Update. # noqa: E501
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
:return: The efs_folder of this Update. # noqa: E501
|
|
151
|
-
:rtype: V1EFSFolderDataConnection
|
|
152
|
-
"""
|
|
153
|
-
return self._efs_folder
|
|
154
|
-
|
|
155
|
-
@efs_folder.setter
|
|
156
|
-
def efs_folder(self, efs_folder: 'V1EFSFolderDataConnection'):
|
|
157
|
-
"""Sets the efs_folder of this Update.
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
:param efs_folder: The efs_folder of this Update. # noqa: E501
|
|
161
|
-
:type: V1EFSFolderDataConnection
|
|
162
|
-
"""
|
|
163
|
-
|
|
164
|
-
self._efs_folder = efs_folder
|
|
165
|
-
|
|
166
140
|
@property
|
|
167
141
|
def gcp(self) -> 'V1GcpDataConnection':
|
|
168
142
|
"""Gets the gcp of this Update. # 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 V1ApiPricingSpec(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
|
+
'cost_per_hour': 'float',
|
|
45
|
+
'cost_per_request': 'float'
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
attribute_map = {
|
|
49
|
+
'cost_per_hour': 'costPerHour',
|
|
50
|
+
'cost_per_request': 'costPerRequest'
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
def __init__(self, cost_per_hour: 'float' =None, cost_per_request: 'float' =None): # noqa: E501
|
|
54
|
+
"""V1ApiPricingSpec - a model defined in Swagger""" # noqa: E501
|
|
55
|
+
self._cost_per_hour = None
|
|
56
|
+
self._cost_per_request = None
|
|
57
|
+
self.discriminator = None
|
|
58
|
+
if cost_per_hour is not None:
|
|
59
|
+
self.cost_per_hour = cost_per_hour
|
|
60
|
+
if cost_per_request is not None:
|
|
61
|
+
self.cost_per_request = cost_per_request
|
|
62
|
+
|
|
63
|
+
@property
|
|
64
|
+
def cost_per_hour(self) -> 'float':
|
|
65
|
+
"""Gets the cost_per_hour of this V1ApiPricingSpec. # noqa: E501
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
:return: The cost_per_hour of this V1ApiPricingSpec. # noqa: E501
|
|
69
|
+
:rtype: float
|
|
70
|
+
"""
|
|
71
|
+
return self._cost_per_hour
|
|
72
|
+
|
|
73
|
+
@cost_per_hour.setter
|
|
74
|
+
def cost_per_hour(self, cost_per_hour: 'float'):
|
|
75
|
+
"""Sets the cost_per_hour of this V1ApiPricingSpec.
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
:param cost_per_hour: The cost_per_hour of this V1ApiPricingSpec. # noqa: E501
|
|
79
|
+
:type: float
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
self._cost_per_hour = cost_per_hour
|
|
83
|
+
|
|
84
|
+
@property
|
|
85
|
+
def cost_per_request(self) -> 'float':
|
|
86
|
+
"""Gets the cost_per_request of this V1ApiPricingSpec. # noqa: E501
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
:return: The cost_per_request of this V1ApiPricingSpec. # noqa: E501
|
|
90
|
+
:rtype: float
|
|
91
|
+
"""
|
|
92
|
+
return self._cost_per_request
|
|
93
|
+
|
|
94
|
+
@cost_per_request.setter
|
|
95
|
+
def cost_per_request(self, cost_per_request: 'float'):
|
|
96
|
+
"""Sets the cost_per_request of this V1ApiPricingSpec.
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
:param cost_per_request: The cost_per_request of this V1ApiPricingSpec. # noqa: E501
|
|
100
|
+
:type: float
|
|
101
|
+
"""
|
|
102
|
+
|
|
103
|
+
self._cost_per_request = cost_per_request
|
|
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(V1ApiPricingSpec, 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: 'V1ApiPricingSpec') -> bool:
|
|
141
|
+
"""Returns true if both objects are equal"""
|
|
142
|
+
if not isinstance(other, V1ApiPricingSpec):
|
|
143
|
+
return False
|
|
144
|
+
|
|
145
|
+
return self.__dict__ == other.__dict__
|
|
146
|
+
|
|
147
|
+
def __ne__(self, other: 'V1ApiPricingSpec') -> bool:
|
|
148
|
+
"""Returns true if both objects are not equal"""
|
|
149
|
+
return not self == other
|
|
@@ -51,6 +51,7 @@ class V1ClusterSpec(object):
|
|
|
51
51
|
'freeze_accelerators': 'bool',
|
|
52
52
|
'google_cloud_v1': 'V1GoogleCloudDirectV1',
|
|
53
53
|
'insurer_disabled': 'bool',
|
|
54
|
+
'lambda_labs_v1': 'V1LambdaLabsDirectV1',
|
|
54
55
|
'overprovisioning': 'list[V1InstanceOverprovisioningSpec]',
|
|
55
56
|
'pause_automation': 'bool',
|
|
56
57
|
'security_options': 'V1ClusterSecurityOptions',
|
|
@@ -70,6 +71,7 @@ class V1ClusterSpec(object):
|
|
|
70
71
|
'freeze_accelerators': 'freezeAccelerators',
|
|
71
72
|
'google_cloud_v1': 'googleCloudV1',
|
|
72
73
|
'insurer_disabled': 'insurerDisabled',
|
|
74
|
+
'lambda_labs_v1': 'lambdaLabsV1',
|
|
73
75
|
'overprovisioning': 'overprovisioning',
|
|
74
76
|
'pause_automation': 'pauseAutomation',
|
|
75
77
|
'security_options': 'securityOptions',
|
|
@@ -78,7 +80,7 @@ class V1ClusterSpec(object):
|
|
|
78
80
|
'user_id': 'userId'
|
|
79
81
|
}
|
|
80
82
|
|
|
81
|
-
def __init__(self, auth_token: 'str' =None, available_instance_types: 'list[str]' =None, aws_v1: 'V1AWSDirectV1' =None, cluster_type: 'V1ClusterType' =None, deletion_options: 'V1ClusterDeletionOptions' =None, desired_state: 'V1ClusterState' =None, domain: 'str' =None, freeze_accelerators: 'bool' =None, google_cloud_v1: 'V1GoogleCloudDirectV1' =None, insurer_disabled: 'bool' =None, overprovisioning: 'list[V1InstanceOverprovisioningSpec]' =None, pause_automation: 'bool' =None, security_options: 'V1ClusterSecurityOptions' =None, slurm_v1: 'V1SlurmV1' =None, tagging_options: 'V1ClusterTaggingOptions' =None, user_id: 'str' =None): # noqa: E501
|
|
83
|
+
def __init__(self, auth_token: 'str' =None, available_instance_types: 'list[str]' =None, aws_v1: 'V1AWSDirectV1' =None, cluster_type: 'V1ClusterType' =None, deletion_options: 'V1ClusterDeletionOptions' =None, desired_state: 'V1ClusterState' =None, domain: 'str' =None, freeze_accelerators: 'bool' =None, google_cloud_v1: 'V1GoogleCloudDirectV1' =None, insurer_disabled: 'bool' =None, lambda_labs_v1: 'V1LambdaLabsDirectV1' =None, overprovisioning: 'list[V1InstanceOverprovisioningSpec]' =None, pause_automation: 'bool' =None, security_options: 'V1ClusterSecurityOptions' =None, slurm_v1: 'V1SlurmV1' =None, tagging_options: 'V1ClusterTaggingOptions' =None, user_id: 'str' =None): # noqa: E501
|
|
82
84
|
"""V1ClusterSpec - a model defined in Swagger""" # noqa: E501
|
|
83
85
|
self._auth_token = None
|
|
84
86
|
self._available_instance_types = None
|
|
@@ -90,6 +92,7 @@ class V1ClusterSpec(object):
|
|
|
90
92
|
self._freeze_accelerators = None
|
|
91
93
|
self._google_cloud_v1 = None
|
|
92
94
|
self._insurer_disabled = None
|
|
95
|
+
self._lambda_labs_v1 = None
|
|
93
96
|
self._overprovisioning = None
|
|
94
97
|
self._pause_automation = None
|
|
95
98
|
self._security_options = None
|
|
@@ -117,6 +120,8 @@ class V1ClusterSpec(object):
|
|
|
117
120
|
self.google_cloud_v1 = google_cloud_v1
|
|
118
121
|
if insurer_disabled is not None:
|
|
119
122
|
self.insurer_disabled = insurer_disabled
|
|
123
|
+
if lambda_labs_v1 is not None:
|
|
124
|
+
self.lambda_labs_v1 = lambda_labs_v1
|
|
120
125
|
if overprovisioning is not None:
|
|
121
126
|
self.overprovisioning = overprovisioning
|
|
122
127
|
if pause_automation is not None:
|
|
@@ -344,6 +349,27 @@ class V1ClusterSpec(object):
|
|
|
344
349
|
|
|
345
350
|
self._insurer_disabled = insurer_disabled
|
|
346
351
|
|
|
352
|
+
@property
|
|
353
|
+
def lambda_labs_v1(self) -> 'V1LambdaLabsDirectV1':
|
|
354
|
+
"""Gets the lambda_labs_v1 of this V1ClusterSpec. # noqa: E501
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
:return: The lambda_labs_v1 of this V1ClusterSpec. # noqa: E501
|
|
358
|
+
:rtype: V1LambdaLabsDirectV1
|
|
359
|
+
"""
|
|
360
|
+
return self._lambda_labs_v1
|
|
361
|
+
|
|
362
|
+
@lambda_labs_v1.setter
|
|
363
|
+
def lambda_labs_v1(self, lambda_labs_v1: 'V1LambdaLabsDirectV1'):
|
|
364
|
+
"""Sets the lambda_labs_v1 of this V1ClusterSpec.
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
:param lambda_labs_v1: The lambda_labs_v1 of this V1ClusterSpec. # noqa: E501
|
|
368
|
+
:type: V1LambdaLabsDirectV1
|
|
369
|
+
"""
|
|
370
|
+
|
|
371
|
+
self._lambda_labs_v1 = lambda_labs_v1
|
|
372
|
+
|
|
347
373
|
@property
|
|
348
374
|
def overprovisioning(self) -> 'list[V1InstanceOverprovisioningSpec]':
|
|
349
375
|
"""Gets the overprovisioning of this V1ClusterSpec. # noqa: E501
|
|
@@ -46,10 +46,11 @@ class V1CreateDeploymentTemplateRequest(object):
|
|
|
46
46
|
'deployment_id': 'str',
|
|
47
47
|
'description': 'str',
|
|
48
48
|
'image_url': 'str',
|
|
49
|
-
'metrics': '
|
|
49
|
+
'metrics': 'V1DeploymentMetrics',
|
|
50
50
|
'name': 'str',
|
|
51
51
|
'org_id': 'str',
|
|
52
52
|
'parameter_spec': 'V1ParameterizationSpec',
|
|
53
|
+
'pricing': 'V1ApiPricingSpec',
|
|
53
54
|
'project_id': 'str',
|
|
54
55
|
'spec': 'str',
|
|
55
56
|
'tags': 'list[V1ResourceTag]',
|
|
@@ -69,6 +70,7 @@ class V1CreateDeploymentTemplateRequest(object):
|
|
|
69
70
|
'name': 'name',
|
|
70
71
|
'org_id': 'orgId',
|
|
71
72
|
'parameter_spec': 'parameterSpec',
|
|
73
|
+
'pricing': 'pricing',
|
|
72
74
|
'project_id': 'projectId',
|
|
73
75
|
'spec': 'spec',
|
|
74
76
|
'tags': 'tags',
|
|
@@ -78,7 +80,7 @@ class V1CreateDeploymentTemplateRequest(object):
|
|
|
78
80
|
'visibility': 'visibility'
|
|
79
81
|
}
|
|
80
82
|
|
|
81
|
-
def __init__(self, about_page_content: 'str' =None, categories: 'list[str]' =None, deployment_id: 'str' =None, description: 'str' =None, image_url: 'str' =None, metrics: '
|
|
83
|
+
def __init__(self, about_page_content: 'str' =None, categories: 'list[str]' =None, deployment_id: 'str' =None, description: 'str' =None, image_url: 'str' =None, metrics: 'V1DeploymentMetrics' =None, name: 'str' =None, org_id: 'str' =None, parameter_spec: 'V1ParameterizationSpec' =None, pricing: 'V1ApiPricingSpec' =None, project_id: 'str' =None, spec: 'str' =None, tags: 'list[V1ResourceTag]' =None, thumbnail: 'str' =None, thumbnail_file_type: 'str' =None, version: 'str' =None, visibility: 'V1DeploymentTemplateType' =None): # noqa: E501
|
|
82
84
|
"""V1CreateDeploymentTemplateRequest - a model defined in Swagger""" # noqa: E501
|
|
83
85
|
self._about_page_content = None
|
|
84
86
|
self._categories = None
|
|
@@ -89,6 +91,7 @@ class V1CreateDeploymentTemplateRequest(object):
|
|
|
89
91
|
self._name = None
|
|
90
92
|
self._org_id = None
|
|
91
93
|
self._parameter_spec = None
|
|
94
|
+
self._pricing = None
|
|
92
95
|
self._project_id = None
|
|
93
96
|
self._spec = None
|
|
94
97
|
self._tags = None
|
|
@@ -115,6 +118,8 @@ class V1CreateDeploymentTemplateRequest(object):
|
|
|
115
118
|
self.org_id = org_id
|
|
116
119
|
if parameter_spec is not None:
|
|
117
120
|
self.parameter_spec = parameter_spec
|
|
121
|
+
if pricing is not None:
|
|
122
|
+
self.pricing = pricing
|
|
118
123
|
if project_id is not None:
|
|
119
124
|
self.project_id = project_id
|
|
120
125
|
if spec is not None:
|
|
@@ -236,22 +241,22 @@ class V1CreateDeploymentTemplateRequest(object):
|
|
|
236
241
|
self._image_url = image_url
|
|
237
242
|
|
|
238
243
|
@property
|
|
239
|
-
def metrics(self) -> '
|
|
244
|
+
def metrics(self) -> 'V1DeploymentMetrics':
|
|
240
245
|
"""Gets the metrics of this V1CreateDeploymentTemplateRequest. # noqa: E501
|
|
241
246
|
|
|
242
247
|
|
|
243
248
|
:return: The metrics of this V1CreateDeploymentTemplateRequest. # noqa: E501
|
|
244
|
-
:rtype:
|
|
249
|
+
:rtype: V1DeploymentMetrics
|
|
245
250
|
"""
|
|
246
251
|
return self._metrics
|
|
247
252
|
|
|
248
253
|
@metrics.setter
|
|
249
|
-
def metrics(self, metrics: '
|
|
254
|
+
def metrics(self, metrics: 'V1DeploymentMetrics'):
|
|
250
255
|
"""Sets the metrics of this V1CreateDeploymentTemplateRequest.
|
|
251
256
|
|
|
252
257
|
|
|
253
258
|
:param metrics: The metrics of this V1CreateDeploymentTemplateRequest. # noqa: E501
|
|
254
|
-
:type:
|
|
259
|
+
:type: V1DeploymentMetrics
|
|
255
260
|
"""
|
|
256
261
|
|
|
257
262
|
self._metrics = metrics
|
|
@@ -319,6 +324,27 @@ class V1CreateDeploymentTemplateRequest(object):
|
|
|
319
324
|
|
|
320
325
|
self._parameter_spec = parameter_spec
|
|
321
326
|
|
|
327
|
+
@property
|
|
328
|
+
def pricing(self) -> 'V1ApiPricingSpec':
|
|
329
|
+
"""Gets the pricing of this V1CreateDeploymentTemplateRequest. # noqa: E501
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
:return: The pricing of this V1CreateDeploymentTemplateRequest. # noqa: E501
|
|
333
|
+
:rtype: V1ApiPricingSpec
|
|
334
|
+
"""
|
|
335
|
+
return self._pricing
|
|
336
|
+
|
|
337
|
+
@pricing.setter
|
|
338
|
+
def pricing(self, pricing: 'V1ApiPricingSpec'):
|
|
339
|
+
"""Sets the pricing of this V1CreateDeploymentTemplateRequest.
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
:param pricing: The pricing of this V1CreateDeploymentTemplateRequest. # noqa: E501
|
|
343
|
+
:type: V1ApiPricingSpec
|
|
344
|
+
"""
|
|
345
|
+
|
|
346
|
+
self._pricing = pricing
|
|
347
|
+
|
|
322
348
|
@property
|
|
323
349
|
def project_id(self) -> 'str':
|
|
324
350
|
"""Gets the project_id of this V1CreateDeploymentTemplateRequest. # noqa: E501
|