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.
Files changed (62) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/ai_hub.py +21 -23
  3. lightning_sdk/api/ai_hub_api.py +29 -4
  4. lightning_sdk/api/job_api.py +6 -2
  5. lightning_sdk/api/teamspace_api.py +18 -14
  6. lightning_sdk/api/utils.py +19 -0
  7. lightning_sdk/cli/ai_hub.py +1 -1
  8. lightning_sdk/cli/run.py +8 -0
  9. lightning_sdk/job/base.py +13 -0
  10. lightning_sdk/job/job.py +8 -0
  11. lightning_sdk/job/v1.py +5 -1
  12. lightning_sdk/job/v2.py +4 -0
  13. lightning_sdk/lightning_cloud/openapi/__init__.py +13 -2
  14. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +5 -1
  15. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +680 -62
  16. lightning_sdk/lightning_cloud/openapi/models/__init__.py +13 -2
  17. lightning_sdk/lightning_cloud/openapi/models/create.py +6 -32
  18. lightning_sdk/lightning_cloud/openapi/models/deploymenttemplates_id_body.py +32 -6
  19. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +27 -1
  20. lightning_sdk/lightning_cloud/openapi/models/multimachinejobs_id_body.py +123 -0
  21. lightning_sdk/lightning_cloud/openapi/models/project_id_agents_body.py +53 -1
  22. lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +27 -1
  23. lightning_sdk/lightning_cloud/openapi/models/project_id_multimachinejobs_body.py +201 -0
  24. lightning_sdk/lightning_cloud/openapi/models/update.py +6 -32
  25. lightning_sdk/lightning_cloud/openapi/models/v1_api_pricing_spec.py +149 -0
  26. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
  27. lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_template_request.py +32 -6
  28. lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +6 -32
  29. lightning_sdk/lightning_cloud/openapi/models/v1_delete_multi_machine_job_response.py +97 -0
  30. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_metrics.py +43 -17
  31. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_performance.py +305 -0
  32. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template.py +32 -6
  33. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter.py +27 -1
  34. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter_type.py +1 -0
  35. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_summary.py +27 -1
  36. lightning_sdk/lightning_cloud/openapi/models/{v1_efs_data_connection.py → v1_efs_config.py} +22 -22
  37. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_files_response.py +27 -1
  38. lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +53 -1
  39. lightning_sdk/lightning_cloud/openapi/models/v1_lambda_labs_direct_v1.py +125 -0
  40. lightning_sdk/lightning_cloud/openapi/models/v1_list_multi_machine_jobs_response.py +123 -0
  41. lightning_sdk/lightning_cloud/openapi/models/v1_machines_selector.py +149 -0
  42. lightning_sdk/lightning_cloud/openapi/models/v1_message.py +6 -6
  43. lightning_sdk/lightning_cloud/openapi/models/v1_message_content.py +6 -6
  44. lightning_sdk/lightning_cloud/openapi/models/v1_message_content_type.py +103 -0
  45. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +53 -1
  46. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job.py +383 -0
  47. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_state.py +108 -0
  48. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_status.py +279 -0
  49. lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +2 -0
  50. lightning_sdk/lightning_cloud/openapi/models/v1_system_info.py +27 -1
  51. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +53 -1
  52. lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +27 -1
  53. lightning_sdk/lightning_cloud/openapi/models/v1_validate_data_connection_response.py +6 -32
  54. lightning_sdk/lightning_cloud/openapi/models/validate.py +6 -32
  55. lightning_sdk/teamspace.py +5 -0
  56. {lightning_sdk-0.1.37.dist-info → lightning_sdk-0.1.38.dist-info}/METADATA +1 -1
  57. {lightning_sdk-0.1.37.dist-info → lightning_sdk-0.1.38.dist-info}/RECORD +61 -50
  58. lightning_sdk/lightning_cloud/openapi/models/v1_efs_folder_data_connection.py +0 -201
  59. {lightning_sdk-0.1.37.dist-info → lightning_sdk-0.1.38.dist-info}/LICENSE +0 -0
  60. {lightning_sdk-0.1.37.dist-info → lightning_sdk-0.1.38.dist-info}/WHEEL +0 -0
  61. {lightning_sdk-0.1.37.dist-info → lightning_sdk-0.1.38.dist-info}/entry_points.txt +0 -0
  62. {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': 'V1EfsDataConnection',
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: 'V1EfsDataConnection' =None, efs_folder: 'V1EFSFolderDataConnection' =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
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) -> 'V1EfsDataConnection':
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: V1EfsDataConnection
125
+ :rtype: V1EfsConfig
131
126
  """
132
127
  return self._efs
133
128
 
134
129
  @efs.setter
135
- def efs(self, efs: 'V1EfsDataConnection'):
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: V1EfsDataConnection
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': 'list[V1DeploymentMetrics]',
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: 'list[V1DeploymentMetrics]' =None, name: 'str' =None, org_id: 'str' =None, parameter_spec: 'V1ParameterizationSpec' =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
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) -> 'list[V1DeploymentMetrics]':
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: list[V1DeploymentMetrics]
249
+ :rtype: V1DeploymentMetrics
245
250
  """
246
251
  return self._metrics
247
252
 
248
253
  @metrics.setter
249
- def metrics(self, metrics: 'list[V1DeploymentMetrics]'):
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: list[V1DeploymentMetrics]
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