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
@@ -46,8 +46,7 @@ class V1DataConnection(object):
46
46
  'aws': 'V1AwsDataConnection',
47
47
  'cluster_id': 'str',
48
48
  'created_at': 'datetime',
49
- 'efs': 'V1EfsDataConnection',
50
- 'efs_folder': 'V1EFSFolderDataConnection',
49
+ 'efs': 'V1EfsConfig',
51
50
  'gcp': 'V1GcpDataConnection',
52
51
  'gcs_folder': 'V1GCSFolderDataConnection',
53
52
  'id': 'str',
@@ -74,7 +73,6 @@ class V1DataConnection(object):
74
73
  'cluster_id': 'clusterId',
75
74
  'created_at': 'createdAt',
76
75
  'efs': 'efs',
77
- 'efs_folder': 'efsFolder',
78
76
  'gcp': 'gcp',
79
77
  'gcs_folder': 'gcsFolder',
80
78
  'id': 'id',
@@ -94,7 +92,7 @@ class V1DataConnection(object):
94
92
  'writable': 'writable'
95
93
  }
96
94
 
97
- def __init__(self, access_cluster_ids: 'list[str]' =None, accessible: 'bool' =None, aws: 'V1AwsDataConnection' =None, cluster_id: 'str' =None, created_at: 'datetime' =None, efs: 'V1EfsDataConnection' =None, efs_folder: 'V1EFSFolderDataConnection' =None, gcp: 'V1GcpDataConnection' =None, gcs_folder: 'V1GCSFolderDataConnection' =None, id: 'str' =None, index: 'V1Index' =None, is_managed: 'bool' =None, lock_out: 'bool' =None, name: 'str' =None, number_of_files: 'str' =None, project_id: 'str' =None, run_cmds: 'list[str]' =None, s3_folder: 'V1S3FolderDataConnection' =None, snowflake: 'V1SnowflakeDataConnection' =None, state: 'V1DataConnectionState' =None, total_size_bytes: 'str' =None, type: 'str' =None, updated_at: 'datetime' =None, writable: 'bool' =None): # noqa: E501
95
+ def __init__(self, access_cluster_ids: 'list[str]' =None, accessible: 'bool' =None, aws: 'V1AwsDataConnection' =None, cluster_id: 'str' =None, created_at: 'datetime' =None, efs: 'V1EfsConfig' =None, gcp: 'V1GcpDataConnection' =None, gcs_folder: 'V1GCSFolderDataConnection' =None, id: 'str' =None, index: 'V1Index' =None, is_managed: 'bool' =None, lock_out: 'bool' =None, name: 'str' =None, number_of_files: 'str' =None, project_id: 'str' =None, run_cmds: 'list[str]' =None, s3_folder: 'V1S3FolderDataConnection' =None, snowflake: 'V1SnowflakeDataConnection' =None, state: 'V1DataConnectionState' =None, total_size_bytes: 'str' =None, type: 'str' =None, updated_at: 'datetime' =None, writable: 'bool' =None): # noqa: E501
98
96
  """V1DataConnection - a model defined in Swagger""" # noqa: E501
99
97
  self._access_cluster_ids = None
100
98
  self._accessible = None
@@ -102,7 +100,6 @@ class V1DataConnection(object):
102
100
  self._cluster_id = None
103
101
  self._created_at = None
104
102
  self._efs = None
105
- self._efs_folder = None
106
103
  self._gcp = None
107
104
  self._gcs_folder = None
108
105
  self._id = None
@@ -133,8 +130,6 @@ class V1DataConnection(object):
133
130
  self.created_at = created_at
134
131
  if efs is not None:
135
132
  self.efs = efs
136
- if efs_folder is not None:
137
- self.efs_folder = efs_folder
138
133
  if gcp is not None:
139
134
  self.gcp = gcp
140
135
  if gcs_folder is not None:
@@ -276,47 +271,26 @@ class V1DataConnection(object):
276
271
  self._created_at = created_at
277
272
 
278
273
  @property
279
- def efs(self) -> 'V1EfsDataConnection':
274
+ def efs(self) -> 'V1EfsConfig':
280
275
  """Gets the efs of this V1DataConnection. # noqa: E501
281
276
 
282
277
 
283
278
  :return: The efs of this V1DataConnection. # noqa: E501
284
- :rtype: V1EfsDataConnection
279
+ :rtype: V1EfsConfig
285
280
  """
286
281
  return self._efs
287
282
 
288
283
  @efs.setter
289
- def efs(self, efs: 'V1EfsDataConnection'):
284
+ def efs(self, efs: 'V1EfsConfig'):
290
285
  """Sets the efs of this V1DataConnection.
291
286
 
292
287
 
293
288
  :param efs: The efs of this V1DataConnection. # noqa: E501
294
- :type: V1EfsDataConnection
289
+ :type: V1EfsConfig
295
290
  """
296
291
 
297
292
  self._efs = efs
298
293
 
299
- @property
300
- def efs_folder(self) -> 'V1EFSFolderDataConnection':
301
- """Gets the efs_folder of this V1DataConnection. # noqa: E501
302
-
303
-
304
- :return: The efs_folder of this V1DataConnection. # noqa: E501
305
- :rtype: V1EFSFolderDataConnection
306
- """
307
- return self._efs_folder
308
-
309
- @efs_folder.setter
310
- def efs_folder(self, efs_folder: 'V1EFSFolderDataConnection'):
311
- """Sets the efs_folder of this V1DataConnection.
312
-
313
-
314
- :param efs_folder: The efs_folder of this V1DataConnection. # noqa: E501
315
- :type: V1EFSFolderDataConnection
316
- """
317
-
318
- self._efs_folder = efs_folder
319
-
320
294
  @property
321
295
  def gcp(self) -> 'V1GcpDataConnection':
322
296
  """Gets the gcp of this V1DataConnection. # noqa: E501
@@ -0,0 +1,97 @@
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 V1DeleteMultiMachineJobResponse(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
+ }
45
+
46
+ attribute_map = {
47
+ }
48
+
49
+ def __init__(self): # noqa: E501
50
+ """V1DeleteMultiMachineJobResponse - a model defined in Swagger""" # noqa: E501
51
+ self.discriminator = None
52
+
53
+ def to_dict(self) -> dict:
54
+ """Returns the model properties as a dict"""
55
+ result = {}
56
+
57
+ for attr, _ in six.iteritems(self.swagger_types):
58
+ value = getattr(self, attr)
59
+ if isinstance(value, list):
60
+ result[attr] = list(map(
61
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
62
+ value
63
+ ))
64
+ elif hasattr(value, "to_dict"):
65
+ result[attr] = value.to_dict()
66
+ elif isinstance(value, dict):
67
+ result[attr] = dict(map(
68
+ lambda item: (item[0], item[1].to_dict())
69
+ if hasattr(item[1], "to_dict") else item,
70
+ value.items()
71
+ ))
72
+ else:
73
+ result[attr] = value
74
+ if issubclass(V1DeleteMultiMachineJobResponse, dict):
75
+ for key, value in self.items():
76
+ result[key] = value
77
+
78
+ return result
79
+
80
+ def to_str(self) -> str:
81
+ """Returns the string representation of the model"""
82
+ return pprint.pformat(self.to_dict())
83
+
84
+ def __repr__(self) -> str:
85
+ """For `print` and `pprint`"""
86
+ return self.to_str()
87
+
88
+ def __eq__(self, other: 'V1DeleteMultiMachineJobResponse') -> bool:
89
+ """Returns true if both objects are equal"""
90
+ if not isinstance(other, V1DeleteMultiMachineJobResponse):
91
+ return False
92
+
93
+ return self.__dict__ == other.__dict__
94
+
95
+ def __ne__(self, other: 'V1DeleteMultiMachineJobResponse') -> bool:
96
+ """Returns true if both objects are not equal"""
97
+ return not self == other
@@ -41,40 +41,66 @@ class V1DeploymentMetrics(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
- 'url': 'str'
44
+ 'performance': 'V1DeploymentPerformance',
45
+ 'urls': 'list[str]'
45
46
  }
46
47
 
47
48
  attribute_map = {
48
- 'url': 'url'
49
+ 'performance': 'performance',
50
+ 'urls': 'urls'
49
51
  }
50
52
 
51
- def __init__(self, url: 'str' =None): # noqa: E501
53
+ def __init__(self, performance: 'V1DeploymentPerformance' =None, urls: 'list[str]' =None): # noqa: E501
52
54
  """V1DeploymentMetrics - a model defined in Swagger""" # noqa: E501
53
- self._url = None
55
+ self._performance = None
56
+ self._urls = None
54
57
  self.discriminator = None
55
- if url is not None:
56
- self.url = url
58
+ if performance is not None:
59
+ self.performance = performance
60
+ if urls is not None:
61
+ self.urls = urls
57
62
 
58
63
  @property
59
- def url(self) -> 'str':
60
- """Gets the url of this V1DeploymentMetrics. # noqa: E501
64
+ def performance(self) -> 'V1DeploymentPerformance':
65
+ """Gets the performance of this V1DeploymentMetrics. # noqa: E501
61
66
 
62
67
 
63
- :return: The url of this V1DeploymentMetrics. # noqa: E501
64
- :rtype: str
68
+ :return: The performance of this V1DeploymentMetrics. # noqa: E501
69
+ :rtype: V1DeploymentPerformance
65
70
  """
66
- return self._url
71
+ return self._performance
67
72
 
68
- @url.setter
69
- def url(self, url: 'str'):
70
- """Sets the url of this V1DeploymentMetrics.
73
+ @performance.setter
74
+ def performance(self, performance: 'V1DeploymentPerformance'):
75
+ """Sets the performance of this V1DeploymentMetrics.
71
76
 
72
77
 
73
- :param url: The url of this V1DeploymentMetrics. # noqa: E501
74
- :type: str
78
+ :param performance: The performance of this V1DeploymentMetrics. # noqa: E501
79
+ :type: V1DeploymentPerformance
75
80
  """
76
81
 
77
- self._url = url
82
+ self._performance = performance
83
+
84
+ @property
85
+ def urls(self) -> 'list[str]':
86
+ """Gets the urls of this V1DeploymentMetrics. # noqa: E501
87
+
88
+
89
+ :return: The urls of this V1DeploymentMetrics. # noqa: E501
90
+ :rtype: list[str]
91
+ """
92
+ return self._urls
93
+
94
+ @urls.setter
95
+ def urls(self, urls: 'list[str]'):
96
+ """Sets the urls of this V1DeploymentMetrics.
97
+
98
+
99
+ :param urls: The urls of this V1DeploymentMetrics. # noqa: E501
100
+ :type: list[str]
101
+ """
102
+
103
+ self._urls = urls
78
104
 
79
105
  def to_dict(self) -> dict:
80
106
  """Returns the model properties as a dict"""
@@ -0,0 +1,305 @@
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 V1DeploymentPerformance(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
+ 'cold_start': 'int',
45
+ 'cold_start_description': 'str',
46
+ 'latency': 'int',
47
+ 'latency_description': 'str',
48
+ 'requests_per_dollar': 'str',
49
+ 'requests_per_dollar_description': 'str',
50
+ 'throughput': 'str',
51
+ 'throughput_description': 'str'
52
+ }
53
+
54
+ attribute_map = {
55
+ 'cold_start': 'coldStart',
56
+ 'cold_start_description': 'coldStartDescription',
57
+ 'latency': 'latency',
58
+ 'latency_description': 'latencyDescription',
59
+ 'requests_per_dollar': 'requestsPerDollar',
60
+ 'requests_per_dollar_description': 'requestsPerDollarDescription',
61
+ 'throughput': 'throughput',
62
+ 'throughput_description': 'throughputDescription'
63
+ }
64
+
65
+ def __init__(self, cold_start: 'int' =None, cold_start_description: 'str' =None, latency: 'int' =None, latency_description: 'str' =None, requests_per_dollar: 'str' =None, requests_per_dollar_description: 'str' =None, throughput: 'str' =None, throughput_description: 'str' =None): # noqa: E501
66
+ """V1DeploymentPerformance - a model defined in Swagger""" # noqa: E501
67
+ self._cold_start = None
68
+ self._cold_start_description = None
69
+ self._latency = None
70
+ self._latency_description = None
71
+ self._requests_per_dollar = None
72
+ self._requests_per_dollar_description = None
73
+ self._throughput = None
74
+ self._throughput_description = None
75
+ self.discriminator = None
76
+ if cold_start is not None:
77
+ self.cold_start = cold_start
78
+ if cold_start_description is not None:
79
+ self.cold_start_description = cold_start_description
80
+ if latency is not None:
81
+ self.latency = latency
82
+ if latency_description is not None:
83
+ self.latency_description = latency_description
84
+ if requests_per_dollar is not None:
85
+ self.requests_per_dollar = requests_per_dollar
86
+ if requests_per_dollar_description is not None:
87
+ self.requests_per_dollar_description = requests_per_dollar_description
88
+ if throughput is not None:
89
+ self.throughput = throughput
90
+ if throughput_description is not None:
91
+ self.throughput_description = throughput_description
92
+
93
+ @property
94
+ def cold_start(self) -> 'int':
95
+ """Gets the cold_start of this V1DeploymentPerformance. # noqa: E501
96
+
97
+
98
+ :return: The cold_start of this V1DeploymentPerformance. # noqa: E501
99
+ :rtype: int
100
+ """
101
+ return self._cold_start
102
+
103
+ @cold_start.setter
104
+ def cold_start(self, cold_start: 'int'):
105
+ """Sets the cold_start of this V1DeploymentPerformance.
106
+
107
+
108
+ :param cold_start: The cold_start of this V1DeploymentPerformance. # noqa: E501
109
+ :type: int
110
+ """
111
+
112
+ self._cold_start = cold_start
113
+
114
+ @property
115
+ def cold_start_description(self) -> 'str':
116
+ """Gets the cold_start_description of this V1DeploymentPerformance. # noqa: E501
117
+
118
+
119
+ :return: The cold_start_description of this V1DeploymentPerformance. # noqa: E501
120
+ :rtype: str
121
+ """
122
+ return self._cold_start_description
123
+
124
+ @cold_start_description.setter
125
+ def cold_start_description(self, cold_start_description: 'str'):
126
+ """Sets the cold_start_description of this V1DeploymentPerformance.
127
+
128
+
129
+ :param cold_start_description: The cold_start_description of this V1DeploymentPerformance. # noqa: E501
130
+ :type: str
131
+ """
132
+
133
+ self._cold_start_description = cold_start_description
134
+
135
+ @property
136
+ def latency(self) -> 'int':
137
+ """Gets the latency of this V1DeploymentPerformance. # noqa: E501
138
+
139
+
140
+ :return: The latency of this V1DeploymentPerformance. # noqa: E501
141
+ :rtype: int
142
+ """
143
+ return self._latency
144
+
145
+ @latency.setter
146
+ def latency(self, latency: 'int'):
147
+ """Sets the latency of this V1DeploymentPerformance.
148
+
149
+
150
+ :param latency: The latency of this V1DeploymentPerformance. # noqa: E501
151
+ :type: int
152
+ """
153
+
154
+ self._latency = latency
155
+
156
+ @property
157
+ def latency_description(self) -> 'str':
158
+ """Gets the latency_description of this V1DeploymentPerformance. # noqa: E501
159
+
160
+
161
+ :return: The latency_description of this V1DeploymentPerformance. # noqa: E501
162
+ :rtype: str
163
+ """
164
+ return self._latency_description
165
+
166
+ @latency_description.setter
167
+ def latency_description(self, latency_description: 'str'):
168
+ """Sets the latency_description of this V1DeploymentPerformance.
169
+
170
+
171
+ :param latency_description: The latency_description of this V1DeploymentPerformance. # noqa: E501
172
+ :type: str
173
+ """
174
+
175
+ self._latency_description = latency_description
176
+
177
+ @property
178
+ def requests_per_dollar(self) -> 'str':
179
+ """Gets the requests_per_dollar of this V1DeploymentPerformance. # noqa: E501
180
+
181
+
182
+ :return: The requests_per_dollar of this V1DeploymentPerformance. # noqa: E501
183
+ :rtype: str
184
+ """
185
+ return self._requests_per_dollar
186
+
187
+ @requests_per_dollar.setter
188
+ def requests_per_dollar(self, requests_per_dollar: 'str'):
189
+ """Sets the requests_per_dollar of this V1DeploymentPerformance.
190
+
191
+
192
+ :param requests_per_dollar: The requests_per_dollar of this V1DeploymentPerformance. # noqa: E501
193
+ :type: str
194
+ """
195
+
196
+ self._requests_per_dollar = requests_per_dollar
197
+
198
+ @property
199
+ def requests_per_dollar_description(self) -> 'str':
200
+ """Gets the requests_per_dollar_description of this V1DeploymentPerformance. # noqa: E501
201
+
202
+
203
+ :return: The requests_per_dollar_description of this V1DeploymentPerformance. # noqa: E501
204
+ :rtype: str
205
+ """
206
+ return self._requests_per_dollar_description
207
+
208
+ @requests_per_dollar_description.setter
209
+ def requests_per_dollar_description(self, requests_per_dollar_description: 'str'):
210
+ """Sets the requests_per_dollar_description of this V1DeploymentPerformance.
211
+
212
+
213
+ :param requests_per_dollar_description: The requests_per_dollar_description of this V1DeploymentPerformance. # noqa: E501
214
+ :type: str
215
+ """
216
+
217
+ self._requests_per_dollar_description = requests_per_dollar_description
218
+
219
+ @property
220
+ def throughput(self) -> 'str':
221
+ """Gets the throughput of this V1DeploymentPerformance. # noqa: E501
222
+
223
+
224
+ :return: The throughput of this V1DeploymentPerformance. # noqa: E501
225
+ :rtype: str
226
+ """
227
+ return self._throughput
228
+
229
+ @throughput.setter
230
+ def throughput(self, throughput: 'str'):
231
+ """Sets the throughput of this V1DeploymentPerformance.
232
+
233
+
234
+ :param throughput: The throughput of this V1DeploymentPerformance. # noqa: E501
235
+ :type: str
236
+ """
237
+
238
+ self._throughput = throughput
239
+
240
+ @property
241
+ def throughput_description(self) -> 'str':
242
+ """Gets the throughput_description of this V1DeploymentPerformance. # noqa: E501
243
+
244
+
245
+ :return: The throughput_description of this V1DeploymentPerformance. # noqa: E501
246
+ :rtype: str
247
+ """
248
+ return self._throughput_description
249
+
250
+ @throughput_description.setter
251
+ def throughput_description(self, throughput_description: 'str'):
252
+ """Sets the throughput_description of this V1DeploymentPerformance.
253
+
254
+
255
+ :param throughput_description: The throughput_description of this V1DeploymentPerformance. # noqa: E501
256
+ :type: str
257
+ """
258
+
259
+ self._throughput_description = throughput_description
260
+
261
+ def to_dict(self) -> dict:
262
+ """Returns the model properties as a dict"""
263
+ result = {}
264
+
265
+ for attr, _ in six.iteritems(self.swagger_types):
266
+ value = getattr(self, attr)
267
+ if isinstance(value, list):
268
+ result[attr] = list(map(
269
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
270
+ value
271
+ ))
272
+ elif hasattr(value, "to_dict"):
273
+ result[attr] = value.to_dict()
274
+ elif isinstance(value, dict):
275
+ result[attr] = dict(map(
276
+ lambda item: (item[0], item[1].to_dict())
277
+ if hasattr(item[1], "to_dict") else item,
278
+ value.items()
279
+ ))
280
+ else:
281
+ result[attr] = value
282
+ if issubclass(V1DeploymentPerformance, dict):
283
+ for key, value in self.items():
284
+ result[key] = value
285
+
286
+ return result
287
+
288
+ def to_str(self) -> str:
289
+ """Returns the string representation of the model"""
290
+ return pprint.pformat(self.to_dict())
291
+
292
+ def __repr__(self) -> str:
293
+ """For `print` and `pprint`"""
294
+ return self.to_str()
295
+
296
+ def __eq__(self, other: 'V1DeploymentPerformance') -> bool:
297
+ """Returns true if both objects are equal"""
298
+ if not isinstance(other, V1DeploymentPerformance):
299
+ return False
300
+
301
+ return self.__dict__ == other.__dict__
302
+
303
+ def __ne__(self, other: 'V1DeploymentPerformance') -> bool:
304
+ """Returns true if both objects are not equal"""
305
+ return not self == other
@@ -51,10 +51,11 @@ class V1DeploymentTemplate(object):
51
51
  'globally_visible': 'bool',
52
52
  'id': 'str',
53
53
  'image_url': 'str',
54
- 'metrics': 'list[V1DeploymentMetrics]',
54
+ 'metrics': 'V1DeploymentMetrics',
55
55
  'name': 'str',
56
56
  'org_id': 'str',
57
57
  'parameter_spec': 'V1ParameterizationSpec',
58
+ 'pricing': 'V1ApiPricingSpec',
58
59
  'project_id': 'str',
59
60
  'spec': 'V1JobSpec',
60
61
  'spec_v2': 'V1DeploymentSpec',
@@ -81,6 +82,7 @@ class V1DeploymentTemplate(object):
81
82
  'name': 'name',
82
83
  'org_id': 'orgId',
83
84
  'parameter_spec': 'parameterSpec',
85
+ 'pricing': 'pricing',
84
86
  'project_id': 'projectId',
85
87
  'spec': 'spec',
86
88
  'spec_v2': 'specV2',
@@ -92,7 +94,7 @@ class V1DeploymentTemplate(object):
92
94
  'user_id': 'userId'
93
95
  }
94
96
 
95
- def __init__(self, about_page_content: 'str' =None, about_page_id: 'str' =None, categories: 'list[str]' =None, created_at: 'datetime' =None, deployment_id: 'str' =None, description: 'str' =None, featured: 'bool' =None, globally_visible: 'bool' =None, id: '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: 'V1JobSpec' =None, spec_v2: 'V1DeploymentSpec' =None, tags: 'list[V1ResourceTag]' =None, thumbnail_updated_at: 'datetime' =None, thumbnail_url: 'str' =None, unpublished: 'bool' =None, updated_at: 'datetime' =None, user_id: 'str' =None): # noqa: E501
97
+ def __init__(self, about_page_content: 'str' =None, about_page_id: 'str' =None, categories: 'list[str]' =None, created_at: 'datetime' =None, deployment_id: 'str' =None, description: 'str' =None, featured: 'bool' =None, globally_visible: 'bool' =None, id: '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: 'V1JobSpec' =None, spec_v2: 'V1DeploymentSpec' =None, tags: 'list[V1ResourceTag]' =None, thumbnail_updated_at: 'datetime' =None, thumbnail_url: 'str' =None, unpublished: 'bool' =None, updated_at: 'datetime' =None, user_id: 'str' =None): # noqa: E501
96
98
  """V1DeploymentTemplate - a model defined in Swagger""" # noqa: E501
97
99
  self._about_page_content = None
98
100
  self._about_page_id = None
@@ -108,6 +110,7 @@ class V1DeploymentTemplate(object):
108
110
  self._name = None
109
111
  self._org_id = None
110
112
  self._parameter_spec = None
113
+ self._pricing = None
111
114
  self._project_id = None
112
115
  self._spec = None
113
116
  self._spec_v2 = None
@@ -146,6 +149,8 @@ class V1DeploymentTemplate(object):
146
149
  self.org_id = org_id
147
150
  if parameter_spec is not None:
148
151
  self.parameter_spec = parameter_spec
152
+ if pricing is not None:
153
+ self.pricing = pricing
149
154
  if project_id is not None:
150
155
  self.project_id = project_id
151
156
  if spec is not None:
@@ -376,22 +381,22 @@ class V1DeploymentTemplate(object):
376
381
  self._image_url = image_url
377
382
 
378
383
  @property
379
- def metrics(self) -> 'list[V1DeploymentMetrics]':
384
+ def metrics(self) -> 'V1DeploymentMetrics':
380
385
  """Gets the metrics of this V1DeploymentTemplate. # noqa: E501
381
386
 
382
387
 
383
388
  :return: The metrics of this V1DeploymentTemplate. # noqa: E501
384
- :rtype: list[V1DeploymentMetrics]
389
+ :rtype: V1DeploymentMetrics
385
390
  """
386
391
  return self._metrics
387
392
 
388
393
  @metrics.setter
389
- def metrics(self, metrics: 'list[V1DeploymentMetrics]'):
394
+ def metrics(self, metrics: 'V1DeploymentMetrics'):
390
395
  """Sets the metrics of this V1DeploymentTemplate.
391
396
 
392
397
 
393
398
  :param metrics: The metrics of this V1DeploymentTemplate. # noqa: E501
394
- :type: list[V1DeploymentMetrics]
399
+ :type: V1DeploymentMetrics
395
400
  """
396
401
 
397
402
  self._metrics = metrics
@@ -459,6 +464,27 @@ class V1DeploymentTemplate(object):
459
464
 
460
465
  self._parameter_spec = parameter_spec
461
466
 
467
+ @property
468
+ def pricing(self) -> 'V1ApiPricingSpec':
469
+ """Gets the pricing of this V1DeploymentTemplate. # noqa: E501
470
+
471
+
472
+ :return: The pricing of this V1DeploymentTemplate. # noqa: E501
473
+ :rtype: V1ApiPricingSpec
474
+ """
475
+ return self._pricing
476
+
477
+ @pricing.setter
478
+ def pricing(self, pricing: 'V1ApiPricingSpec'):
479
+ """Sets the pricing of this V1DeploymentTemplate.
480
+
481
+
482
+ :param pricing: The pricing of this V1DeploymentTemplate. # noqa: E501
483
+ :type: V1ApiPricingSpec
484
+ """
485
+
486
+ self._pricing = pricing
487
+
462
488
  @property
463
489
  def project_id(self) -> 'str':
464
490
  """Gets the project_id of this V1DeploymentTemplate. # noqa: E501