lightning-sdk 0.2.22__py3-none-any.whl → 0.2.23__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 (57) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/license_api.py +2 -2
  3. lightning_sdk/api/llm_api.py +2 -0
  4. lightning_sdk/api/pipeline_api.py +1 -0
  5. lightning_sdk/api/studio_api.py +2 -0
  6. lightning_sdk/cli/entrypoint.py +15 -13
  7. lightning_sdk/cli/start.py +5 -2
  8. lightning_sdk/lightning_cloud/openapi/__init__.py +8 -0
  9. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +206 -0
  10. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +97 -0
  11. lightning_sdk/lightning_cloud/openapi/api/pipelines_service_api.py +118 -1
  12. lightning_sdk/lightning_cloud/openapi/configuration.py +1 -1
  13. lightning_sdk/lightning_cloud/openapi/models/__init__.py +8 -0
  14. lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +29 -3
  15. lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_visibility_body.py +123 -0
  16. lightning_sdk/lightning_cloud/openapi/models/create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs.py +27 -1
  17. lightning_sdk/lightning_cloud/openapi/models/metricsstream_create_body.py +27 -1
  18. lightning_sdk/lightning_cloud/openapi/models/pipelines_id_body.py +27 -1
  19. lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +27 -1
  20. lightning_sdk/lightning_cloud/openapi/models/v1_check_cluster_name_availability_request.py +123 -0
  21. lightning_sdk/lightning_cloud/openapi/models/v1_check_cluster_name_availability_response.py +123 -0
  22. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +1 -0
  23. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space.py +53 -1
  24. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_session.py +29 -3
  25. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +27 -1
  26. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +79 -1
  27. lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_request.py +27 -1
  28. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster.py +253 -0
  29. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +827 -0
  30. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +27 -1
  31. lightning_sdk/lightning_cloud/openapi/models/v1_instance_overprovisioning_spec.py +29 -1
  32. lightning_sdk/lightning_cloud/openapi/models/v1_lightning_run.py +53 -1
  33. lightning_sdk/lightning_cloud/openapi/models/v1_list_clusters_response.py +6 -6
  34. lightning_sdk/lightning_cloud/openapi/models/v1_list_project_clusters_response.py +6 -6
  35. lightning_sdk/lightning_cloud/openapi/models/v1_lite_published_cloud_space_response.py +513 -0
  36. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +27 -1
  37. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline.py +27 -1
  38. lightning_sdk/lightning_cloud/openapi/models/v1_shared_filesystem.py +131 -1
  39. lightning_sdk/lightning_cloud/openapi/models/v1_update_cloud_space_visibility_response.py +97 -0
  40. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +53 -79
  41. lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +78 -104
  42. lightning_sdk/lightning_cloud/openapi/models/v1_volume_state.py +104 -0
  43. lightning_sdk/pipeline/__init__.py +11 -2
  44. lightning_sdk/pipeline/pipeline.py +38 -13
  45. lightning_sdk/pipeline/printer.py +29 -10
  46. lightning_sdk/pipeline/schedule.py +2 -1
  47. lightning_sdk/pipeline/{types.py → steps.py} +74 -56
  48. lightning_sdk/pipeline/utils.py +39 -2
  49. lightning_sdk/sandbox.py +157 -0
  50. lightning_sdk/services/license.py +12 -6
  51. lightning_sdk/studio.py +7 -1
  52. {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.23.dist-info}/METADATA +1 -1
  53. {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.23.dist-info}/RECORD +57 -48
  54. {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.23.dist-info}/LICENSE +0 -0
  55. {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.23.dist-info}/WHEEL +0 -0
  56. {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.23.dist-info}/entry_points.txt +0 -0
  57. {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.23.dist-info}/top_level.txt +0 -0
@@ -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 V1CheckClusterNameAvailabilityResponse(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
+ 'available': 'bool'
45
+ }
46
+
47
+ attribute_map = {
48
+ 'available': 'available'
49
+ }
50
+
51
+ def __init__(self, available: 'bool' =None): # noqa: E501
52
+ """V1CheckClusterNameAvailabilityResponse - a model defined in Swagger""" # noqa: E501
53
+ self._available = None
54
+ self.discriminator = None
55
+ if available is not None:
56
+ self.available = available
57
+
58
+ @property
59
+ def available(self) -> 'bool':
60
+ """Gets the available of this V1CheckClusterNameAvailabilityResponse. # noqa: E501
61
+
62
+
63
+ :return: The available of this V1CheckClusterNameAvailabilityResponse. # noqa: E501
64
+ :rtype: bool
65
+ """
66
+ return self._available
67
+
68
+ @available.setter
69
+ def available(self, available: 'bool'):
70
+ """Sets the available of this V1CheckClusterNameAvailabilityResponse.
71
+
72
+
73
+ :param available: The available of this V1CheckClusterNameAvailabilityResponse. # noqa: E501
74
+ :type: bool
75
+ """
76
+
77
+ self._available = available
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(V1CheckClusterNameAvailabilityResponse, 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: 'V1CheckClusterNameAvailabilityResponse') -> bool:
115
+ """Returns true if both objects are equal"""
116
+ if not isinstance(other, V1CheckClusterNameAvailabilityResponse):
117
+ return False
118
+
119
+ return self.__dict__ == other.__dict__
120
+
121
+ def __ne__(self, other: 'V1CheckClusterNameAvailabilityResponse') -> bool:
122
+ """Returns true if both objects are not equal"""
123
+ return not self == other
@@ -48,6 +48,7 @@ class V1CloudProvider(object):
48
48
  NEBIUS = "NEBIUS"
49
49
  CLOUDFLARE = "CLOUDFLARE"
50
50
  LIGHTNING = "LIGHTNING"
51
+ LIGHTNING_AGGREGATE = "LIGHTNING_AGGREGATE"
51
52
  """
52
53
  Attributes:
53
54
  swagger_types (dict): The key is attribute name
@@ -51,6 +51,7 @@ class V1CloudSpace(object):
51
51
  'created_at': 'datetime',
52
52
  'data_connection_mounts': 'list[V1DataConnectionMount]',
53
53
  'description': 'str',
54
+ 'disable_secrets': 'bool',
54
55
  'display_name': 'str',
55
56
  'engagement_counts': 'dict(str, str)',
56
57
  'env': 'list[V1EnvVar]',
@@ -95,6 +96,7 @@ class V1CloudSpace(object):
95
96
  'updated_at': 'datetime',
96
97
  'user_id': 'str',
97
98
  'user_metadata': 'str',
99
+ 'visibility': 'V1ResourceVisibility',
98
100
  'web_path': 'str'
99
101
  }
100
102
 
@@ -109,6 +111,7 @@ class V1CloudSpace(object):
109
111
  'created_at': 'createdAt',
110
112
  'data_connection_mounts': 'dataConnectionMounts',
111
113
  'description': 'description',
114
+ 'disable_secrets': 'disableSecrets',
112
115
  'display_name': 'displayName',
113
116
  'engagement_counts': 'engagementCounts',
114
117
  'env': 'env',
@@ -153,10 +156,11 @@ class V1CloudSpace(object):
153
156
  'updated_at': 'updatedAt',
154
157
  'user_id': 'userId',
155
158
  'user_metadata': 'userMetadata',
159
+ 'visibility': 'visibility',
156
160
  'web_path': 'webPath'
157
161
  }
158
162
 
159
- def __init__(self, auto_switch_machine: 'bool' =None, cache_data_connection_id: 'str' =None, can_download_source_code: 'bool' =None, cluster_id: 'str' =None, code_config: 'V1CloudSpaceInstanceConfig' =None, code_status: 'V1GetCloudSpaceInstanceStatusResponse' =None, code_url: 'str' =None, created_at: 'datetime' =None, data_connection_mounts: 'list[V1DataConnectionMount]' =None, description: 'str' =None, display_name: 'str' =None, engagement_counts: 'dict(str, str)' =None, env: 'list[V1EnvVar]' =None, environment_config: 'V1CloudSpaceEnvironmentConfig' =None, environment_template_id: 'str' =None, featured: 'bool' =None, hide_files: 'bool' =None, id: 'str' =None, image_status: 'V1ImageState' =None, is_cloudspace_private: 'bool' =None, is_code_private: 'bool' =None, is_favorite: 'bool' =None, is_published: 'bool' =None, license: 'str' =None, license_url: 'str' =None, lock_out: 'bool' =None, machine_image_version: 'str' =None, max_run_duration: 'str' =None, message: 'str' =None, multi_user_edit: 'bool' =None, name: 'str' =None, number_of_files: 'str' =None, operating_cost: 'str' =None, paper_authors: 'str' =None, paper_org: 'str' =None, paper_org_avatar_url: 'str' =None, paper_url: 'str' =None, persistent_disk_id: 'str' =None, project_id: 'str' =None, publications: 'list[V1CloudSpaceVersionPublication]' =None, published_at: 'datetime' =None, published_to_org_at: 'datetime' =None, state: 'V1CloudSpaceState' =None, switch_to_default_machine_on_idle: 'bool' =None, sync_duration: 'str' =None, sync_percentage: 'str' =None, tags: 'list[V1ResourceTag]' =None, thumbnail_file_type: 'str' =None, thumbnail_updated_at: 'datetime' =None, thumbnail_url: 'str' =None, total_size_bytes: 'str' =None, updated_at: 'datetime' =None, user_id: 'str' =None, user_metadata: 'str' =None, web_path: 'str' =None): # noqa: E501
163
+ def __init__(self, auto_switch_machine: 'bool' =None, cache_data_connection_id: 'str' =None, can_download_source_code: 'bool' =None, cluster_id: 'str' =None, code_config: 'V1CloudSpaceInstanceConfig' =None, code_status: 'V1GetCloudSpaceInstanceStatusResponse' =None, code_url: 'str' =None, created_at: 'datetime' =None, data_connection_mounts: 'list[V1DataConnectionMount]' =None, description: 'str' =None, disable_secrets: 'bool' =None, display_name: 'str' =None, engagement_counts: 'dict(str, str)' =None, env: 'list[V1EnvVar]' =None, environment_config: 'V1CloudSpaceEnvironmentConfig' =None, environment_template_id: 'str' =None, featured: 'bool' =None, hide_files: 'bool' =None, id: 'str' =None, image_status: 'V1ImageState' =None, is_cloudspace_private: 'bool' =None, is_code_private: 'bool' =None, is_favorite: 'bool' =None, is_published: 'bool' =None, license: 'str' =None, license_url: 'str' =None, lock_out: 'bool' =None, machine_image_version: 'str' =None, max_run_duration: 'str' =None, message: 'str' =None, multi_user_edit: 'bool' =None, name: 'str' =None, number_of_files: 'str' =None, operating_cost: 'str' =None, paper_authors: 'str' =None, paper_org: 'str' =None, paper_org_avatar_url: 'str' =None, paper_url: 'str' =None, persistent_disk_id: 'str' =None, project_id: 'str' =None, publications: 'list[V1CloudSpaceVersionPublication]' =None, published_at: 'datetime' =None, published_to_org_at: 'datetime' =None, state: 'V1CloudSpaceState' =None, switch_to_default_machine_on_idle: 'bool' =None, sync_duration: 'str' =None, sync_percentage: 'str' =None, tags: 'list[V1ResourceTag]' =None, thumbnail_file_type: 'str' =None, thumbnail_updated_at: 'datetime' =None, thumbnail_url: 'str' =None, total_size_bytes: 'str' =None, updated_at: 'datetime' =None, user_id: 'str' =None, user_metadata: 'str' =None, visibility: 'V1ResourceVisibility' =None, web_path: 'str' =None): # noqa: E501
160
164
  """V1CloudSpace - a model defined in Swagger""" # noqa: E501
161
165
  self._auto_switch_machine = None
162
166
  self._cache_data_connection_id = None
@@ -168,6 +172,7 @@ class V1CloudSpace(object):
168
172
  self._created_at = None
169
173
  self._data_connection_mounts = None
170
174
  self._description = None
175
+ self._disable_secrets = None
171
176
  self._display_name = None
172
177
  self._engagement_counts = None
173
178
  self._env = None
@@ -212,6 +217,7 @@ class V1CloudSpace(object):
212
217
  self._updated_at = None
213
218
  self._user_id = None
214
219
  self._user_metadata = None
220
+ self._visibility = None
215
221
  self._web_path = None
216
222
  self.discriminator = None
217
223
  if auto_switch_machine is not None:
@@ -234,6 +240,8 @@ class V1CloudSpace(object):
234
240
  self.data_connection_mounts = data_connection_mounts
235
241
  if description is not None:
236
242
  self.description = description
243
+ if disable_secrets is not None:
244
+ self.disable_secrets = disable_secrets
237
245
  if display_name is not None:
238
246
  self.display_name = display_name
239
247
  if engagement_counts is not None:
@@ -322,6 +330,8 @@ class V1CloudSpace(object):
322
330
  self.user_id = user_id
323
331
  if user_metadata is not None:
324
332
  self.user_metadata = user_metadata
333
+ if visibility is not None:
334
+ self.visibility = visibility
325
335
  if web_path is not None:
326
336
  self.web_path = web_path
327
337
 
@@ -535,6 +545,27 @@ class V1CloudSpace(object):
535
545
 
536
546
  self._description = description
537
547
 
548
+ @property
549
+ def disable_secrets(self) -> 'bool':
550
+ """Gets the disable_secrets of this V1CloudSpace. # noqa: E501
551
+
552
+
553
+ :return: The disable_secrets of this V1CloudSpace. # noqa: E501
554
+ :rtype: bool
555
+ """
556
+ return self._disable_secrets
557
+
558
+ @disable_secrets.setter
559
+ def disable_secrets(self, disable_secrets: 'bool'):
560
+ """Sets the disable_secrets of this V1CloudSpace.
561
+
562
+
563
+ :param disable_secrets: The disable_secrets of this V1CloudSpace. # noqa: E501
564
+ :type: bool
565
+ """
566
+
567
+ self._disable_secrets = disable_secrets
568
+
538
569
  @property
539
570
  def display_name(self) -> 'str':
540
571
  """Gets the display_name of this V1CloudSpace. # noqa: E501
@@ -1459,6 +1490,27 @@ class V1CloudSpace(object):
1459
1490
 
1460
1491
  self._user_metadata = user_metadata
1461
1492
 
1493
+ @property
1494
+ def visibility(self) -> 'V1ResourceVisibility':
1495
+ """Gets the visibility of this V1CloudSpace. # noqa: E501
1496
+
1497
+
1498
+ :return: The visibility of this V1CloudSpace. # noqa: E501
1499
+ :rtype: V1ResourceVisibility
1500
+ """
1501
+ return self._visibility
1502
+
1503
+ @visibility.setter
1504
+ def visibility(self, visibility: 'V1ResourceVisibility'):
1505
+ """Sets the visibility of this V1CloudSpace.
1506
+
1507
+
1508
+ :param visibility: The visibility of this V1CloudSpace. # noqa: E501
1509
+ :type: V1ResourceVisibility
1510
+ """
1511
+
1512
+ self._visibility = visibility
1513
+
1462
1514
  @property
1463
1515
  def web_path(self) -> 'str':
1464
1516
  """Gets the web_path of this V1CloudSpace. # noqa: E501
@@ -43,20 +43,23 @@ class V1CloudSpaceSession(object):
43
43
  swagger_types = {
44
44
  'command': 'str',
45
45
  'id': 'str',
46
- 'name': 'str'
46
+ 'name': 'str',
47
+ 'timestamp': 'datetime'
47
48
  }
48
49
 
49
50
  attribute_map = {
50
51
  'command': 'command',
51
52
  'id': 'id',
52
- 'name': 'name'
53
+ 'name': 'name',
54
+ 'timestamp': 'timestamp'
53
55
  }
54
56
 
55
- def __init__(self, command: 'str' =None, id: 'str' =None, name: 'str' =None): # noqa: E501
57
+ def __init__(self, command: 'str' =None, id: 'str' =None, name: 'str' =None, timestamp: 'datetime' =None): # noqa: E501
56
58
  """V1CloudSpaceSession - a model defined in Swagger""" # noqa: E501
57
59
  self._command = None
58
60
  self._id = None
59
61
  self._name = None
62
+ self._timestamp = None
60
63
  self.discriminator = None
61
64
  if command is not None:
62
65
  self.command = command
@@ -64,6 +67,8 @@ class V1CloudSpaceSession(object):
64
67
  self.id = id
65
68
  if name is not None:
66
69
  self.name = name
70
+ if timestamp is not None:
71
+ self.timestamp = timestamp
67
72
 
68
73
  @property
69
74
  def command(self) -> 'str':
@@ -128,6 +133,27 @@ class V1CloudSpaceSession(object):
128
133
 
129
134
  self._name = name
130
135
 
136
+ @property
137
+ def timestamp(self) -> 'datetime':
138
+ """Gets the timestamp of this V1CloudSpaceSession. # noqa: E501
139
+
140
+
141
+ :return: The timestamp of this V1CloudSpaceSession. # noqa: E501
142
+ :rtype: datetime
143
+ """
144
+ return self._timestamp
145
+
146
+ @timestamp.setter
147
+ def timestamp(self, timestamp: 'datetime'):
148
+ """Sets the timestamp of this V1CloudSpaceSession.
149
+
150
+
151
+ :param timestamp: The timestamp of this V1CloudSpaceSession. # noqa: E501
152
+ :type: datetime
153
+ """
154
+
155
+ self._timestamp = timestamp
156
+
131
157
  def to_dict(self) -> dict:
132
158
  """Returns the model properties as a dict"""
133
159
  result = {}
@@ -52,6 +52,7 @@ class V1ClusterSecurityOptions(object):
52
52
  'exposed_ports': 'list[str]',
53
53
  'extra_firewall_cidr_ranges': 'list[str]',
54
54
  'extra_policy': 'str',
55
+ 'extra_sa_scopes': 'list[str]',
55
56
  'kms_key_id': 'str',
56
57
  'protect_instance_metadata': 'bool',
57
58
  'rootless_docker': 'bool',
@@ -71,6 +72,7 @@ class V1ClusterSecurityOptions(object):
71
72
  'exposed_ports': 'exposedPorts',
72
73
  'extra_firewall_cidr_ranges': 'extraFirewallCidrRanges',
73
74
  'extra_policy': 'extraPolicy',
75
+ 'extra_sa_scopes': 'extraSaScopes',
74
76
  'kms_key_id': 'kmsKeyId',
75
77
  'protect_instance_metadata': 'protectInstanceMetadata',
76
78
  'rootless_docker': 'rootlessDocker',
@@ -78,7 +80,7 @@ class V1ClusterSecurityOptions(object):
78
80
  'ssh_disabled': 'sshDisabled'
79
81
  }
80
82
 
81
- def __init__(self, bucket_kms_key: 'str' =None, cloud_init_boot_cmds: 'list[str]' =None, cloud_init_run_cmds: 'list[str]' =None, containers_non_privileged: 'bool' =None, disable_public_ip: 'bool' =None, disabled_services: 'list[str]' =None, encrypt_cluster_bucket: 'bool' =None, encrypt_instance_volumes: 'bool' =None, exposed_ports: 'list[str]' =None, extra_firewall_cidr_ranges: 'list[str]' =None, extra_policy: 'str' =None, kms_key_id: 'str' =None, protect_instance_metadata: 'bool' =None, rootless_docker: 'bool' =None, setup_network_load_balancer: 'bool' =None, ssh_disabled: 'bool' =None): # noqa: E501
83
+ def __init__(self, bucket_kms_key: 'str' =None, cloud_init_boot_cmds: 'list[str]' =None, cloud_init_run_cmds: 'list[str]' =None, containers_non_privileged: 'bool' =None, disable_public_ip: 'bool' =None, disabled_services: 'list[str]' =None, encrypt_cluster_bucket: 'bool' =None, encrypt_instance_volumes: 'bool' =None, exposed_ports: 'list[str]' =None, extra_firewall_cidr_ranges: 'list[str]' =None, extra_policy: 'str' =None, extra_sa_scopes: 'list[str]' =None, kms_key_id: 'str' =None, protect_instance_metadata: 'bool' =None, rootless_docker: 'bool' =None, setup_network_load_balancer: 'bool' =None, ssh_disabled: 'bool' =None): # noqa: E501
82
84
  """V1ClusterSecurityOptions - a model defined in Swagger""" # noqa: E501
83
85
  self._bucket_kms_key = None
84
86
  self._cloud_init_boot_cmds = None
@@ -91,6 +93,7 @@ class V1ClusterSecurityOptions(object):
91
93
  self._exposed_ports = None
92
94
  self._extra_firewall_cidr_ranges = None
93
95
  self._extra_policy = None
96
+ self._extra_sa_scopes = None
94
97
  self._kms_key_id = None
95
98
  self._protect_instance_metadata = None
96
99
  self._rootless_docker = None
@@ -119,6 +122,8 @@ class V1ClusterSecurityOptions(object):
119
122
  self.extra_firewall_cidr_ranges = extra_firewall_cidr_ranges
120
123
  if extra_policy is not None:
121
124
  self.extra_policy = extra_policy
125
+ if extra_sa_scopes is not None:
126
+ self.extra_sa_scopes = extra_sa_scopes
122
127
  if kms_key_id is not None:
123
128
  self.kms_key_id = kms_key_id
124
129
  if protect_instance_metadata is not None:
@@ -361,6 +366,27 @@ class V1ClusterSecurityOptions(object):
361
366
 
362
367
  self._extra_policy = extra_policy
363
368
 
369
+ @property
370
+ def extra_sa_scopes(self) -> 'list[str]':
371
+ """Gets the extra_sa_scopes of this V1ClusterSecurityOptions. # noqa: E501
372
+
373
+
374
+ :return: The extra_sa_scopes of this V1ClusterSecurityOptions. # noqa: E501
375
+ :rtype: list[str]
376
+ """
377
+ return self._extra_sa_scopes
378
+
379
+ @extra_sa_scopes.setter
380
+ def extra_sa_scopes(self, extra_sa_scopes: 'list[str]'):
381
+ """Sets the extra_sa_scopes of this V1ClusterSecurityOptions.
382
+
383
+
384
+ :param extra_sa_scopes: The extra_sa_scopes of this V1ClusterSecurityOptions. # noqa: E501
385
+ :type: list[str]
386
+ """
387
+
388
+ self._extra_sa_scopes = extra_sa_scopes
389
+
364
390
  @property
365
391
  def kms_key_id(self) -> 'str':
366
392
  """Gets the kms_key_id of this V1ClusterSecurityOptions. # noqa: E501
@@ -44,8 +44,10 @@ class V1ClusterSpec(object):
44
44
  'auth_token': 'str',
45
45
  'available_accelerators': 'list[str]',
46
46
  'aws_v1': 'V1AWSDirectV1',
47
+ 'cloud_pricing_enabled': 'bool',
47
48
  'cloudflare_v1': 'V1CloudflareV1',
48
49
  'cluster_type': 'V1ClusterType',
50
+ 'compute_cluster_ids': 'list[str]',
49
51
  'deletion_options': 'V1ClusterDeletionOptions',
50
52
  'desired_state': 'V1ClusterState',
51
53
  'domain': 'str',
@@ -54,6 +56,7 @@ class V1ClusterSpec(object):
54
56
  'google_cloud_v1': 'V1GoogleCloudDirectV1',
55
57
  'insurer_disabled': 'bool',
56
58
  'lambda_labs_v1': 'V1LambdaLabsDirectV1',
59
+ 'lock_overprovisioning': 'bool',
57
60
  'locked_zones': 'list[str]',
58
61
  'monitor_deletion_disabled': 'bool',
59
62
  'nebius_v1': 'V1NebiusDirectV1',
@@ -76,8 +79,10 @@ class V1ClusterSpec(object):
76
79
  'auth_token': 'authToken',
77
80
  'available_accelerators': 'availableAccelerators',
78
81
  'aws_v1': 'awsV1',
82
+ 'cloud_pricing_enabled': 'cloudPricingEnabled',
79
83
  'cloudflare_v1': 'cloudflareV1',
80
84
  'cluster_type': 'clusterType',
85
+ 'compute_cluster_ids': 'computeClusterIds',
81
86
  'deletion_options': 'deletionOptions',
82
87
  'desired_state': 'desiredState',
83
88
  'domain': 'domain',
@@ -86,6 +91,7 @@ class V1ClusterSpec(object):
86
91
  'google_cloud_v1': 'googleCloudV1',
87
92
  'insurer_disabled': 'insurerDisabled',
88
93
  'lambda_labs_v1': 'lambdaLabsV1',
94
+ 'lock_overprovisioning': 'lockOverprovisioning',
89
95
  'locked_zones': 'lockedZones',
90
96
  'monitor_deletion_disabled': 'monitorDeletionDisabled',
91
97
  'nebius_v1': 'nebiusV1',
@@ -104,13 +110,15 @@ class V1ClusterSpec(object):
104
110
  'vultr_v1': 'vultrV1'
105
111
  }
106
112
 
107
- def __init__(self, auth_token: 'str' =None, available_accelerators: 'list[str]' =None, aws_v1: 'V1AWSDirectV1' =None, cloudflare_v1: 'V1CloudflareV1' =None, cluster_type: 'V1ClusterType' =None, deletion_options: 'V1ClusterDeletionOptions' =None, desired_state: 'V1ClusterState' =None, domain: 'str' =None, driver: 'V1CloudProvider' =None, freeze_accelerators: 'bool' =None, google_cloud_v1: 'V1GoogleCloudDirectV1' =None, insurer_disabled: 'bool' =None, lambda_labs_v1: 'V1LambdaLabsDirectV1' =None, locked_zones: 'list[str]' =None, monitor_deletion_disabled: 'bool' =None, nebius_v1: 'V1NebiusDirectV1' =None, overprovisioning: 'list[V1InstanceOverprovisioningSpec]' =None, parent_cluster_id: 'str' =None, parent_cluster_type: 'str' =None, pause_automation: 'bool' =None, reservation_details: 'V1ReservationDetails' =None, reserved_capacity_provider: 'bool' =None, reserved_instances_only: 'bool' =None, security_options: 'V1ClusterSecurityOptions' =None, slurm_v1: 'V1SlurmV1' =None, tagging_options: 'V1ClusterTaggingOptions' =None, user_id: 'str' =None, voltage_park_v1: 'V1VoltageParkDirectV1' =None, vultr_v1: 'V1VultrDirectV1' =None): # noqa: E501
113
+ def __init__(self, auth_token: 'str' =None, available_accelerators: 'list[str]' =None, aws_v1: 'V1AWSDirectV1' =None, cloud_pricing_enabled: 'bool' =None, cloudflare_v1: 'V1CloudflareV1' =None, cluster_type: 'V1ClusterType' =None, compute_cluster_ids: 'list[str]' =None, deletion_options: 'V1ClusterDeletionOptions' =None, desired_state: 'V1ClusterState' =None, domain: 'str' =None, driver: 'V1CloudProvider' =None, freeze_accelerators: 'bool' =None, google_cloud_v1: 'V1GoogleCloudDirectV1' =None, insurer_disabled: 'bool' =None, lambda_labs_v1: 'V1LambdaLabsDirectV1' =None, lock_overprovisioning: 'bool' =None, locked_zones: 'list[str]' =None, monitor_deletion_disabled: 'bool' =None, nebius_v1: 'V1NebiusDirectV1' =None, overprovisioning: 'list[V1InstanceOverprovisioningSpec]' =None, parent_cluster_id: 'str' =None, parent_cluster_type: 'str' =None, pause_automation: 'bool' =None, reservation_details: 'V1ReservationDetails' =None, reserved_capacity_provider: 'bool' =None, reserved_instances_only: 'bool' =None, security_options: 'V1ClusterSecurityOptions' =None, slurm_v1: 'V1SlurmV1' =None, tagging_options: 'V1ClusterTaggingOptions' =None, user_id: 'str' =None, voltage_park_v1: 'V1VoltageParkDirectV1' =None, vultr_v1: 'V1VultrDirectV1' =None): # noqa: E501
108
114
  """V1ClusterSpec - a model defined in Swagger""" # noqa: E501
109
115
  self._auth_token = None
110
116
  self._available_accelerators = None
111
117
  self._aws_v1 = None
118
+ self._cloud_pricing_enabled = None
112
119
  self._cloudflare_v1 = None
113
120
  self._cluster_type = None
121
+ self._compute_cluster_ids = None
114
122
  self._deletion_options = None
115
123
  self._desired_state = None
116
124
  self._domain = None
@@ -119,6 +127,7 @@ class V1ClusterSpec(object):
119
127
  self._google_cloud_v1 = None
120
128
  self._insurer_disabled = None
121
129
  self._lambda_labs_v1 = None
130
+ self._lock_overprovisioning = None
122
131
  self._locked_zones = None
123
132
  self._monitor_deletion_disabled = None
124
133
  self._nebius_v1 = None
@@ -142,10 +151,14 @@ class V1ClusterSpec(object):
142
151
  self.available_accelerators = available_accelerators
143
152
  if aws_v1 is not None:
144
153
  self.aws_v1 = aws_v1
154
+ if cloud_pricing_enabled is not None:
155
+ self.cloud_pricing_enabled = cloud_pricing_enabled
145
156
  if cloudflare_v1 is not None:
146
157
  self.cloudflare_v1 = cloudflare_v1
147
158
  if cluster_type is not None:
148
159
  self.cluster_type = cluster_type
160
+ if compute_cluster_ids is not None:
161
+ self.compute_cluster_ids = compute_cluster_ids
149
162
  if deletion_options is not None:
150
163
  self.deletion_options = deletion_options
151
164
  if desired_state is not None:
@@ -162,6 +175,8 @@ class V1ClusterSpec(object):
162
175
  self.insurer_disabled = insurer_disabled
163
176
  if lambda_labs_v1 is not None:
164
177
  self.lambda_labs_v1 = lambda_labs_v1
178
+ if lock_overprovisioning is not None:
179
+ self.lock_overprovisioning = lock_overprovisioning
165
180
  if locked_zones is not None:
166
181
  self.locked_zones = locked_zones
167
182
  if monitor_deletion_disabled is not None:
@@ -258,6 +273,27 @@ class V1ClusterSpec(object):
258
273
 
259
274
  self._aws_v1 = aws_v1
260
275
 
276
+ @property
277
+ def cloud_pricing_enabled(self) -> 'bool':
278
+ """Gets the cloud_pricing_enabled of this V1ClusterSpec. # noqa: E501
279
+
280
+
281
+ :return: The cloud_pricing_enabled of this V1ClusterSpec. # noqa: E501
282
+ :rtype: bool
283
+ """
284
+ return self._cloud_pricing_enabled
285
+
286
+ @cloud_pricing_enabled.setter
287
+ def cloud_pricing_enabled(self, cloud_pricing_enabled: 'bool'):
288
+ """Sets the cloud_pricing_enabled of this V1ClusterSpec.
289
+
290
+
291
+ :param cloud_pricing_enabled: The cloud_pricing_enabled of this V1ClusterSpec. # noqa: E501
292
+ :type: bool
293
+ """
294
+
295
+ self._cloud_pricing_enabled = cloud_pricing_enabled
296
+
261
297
  @property
262
298
  def cloudflare_v1(self) -> 'V1CloudflareV1':
263
299
  """Gets the cloudflare_v1 of this V1ClusterSpec. # noqa: E501
@@ -300,6 +336,27 @@ class V1ClusterSpec(object):
300
336
 
301
337
  self._cluster_type = cluster_type
302
338
 
339
+ @property
340
+ def compute_cluster_ids(self) -> 'list[str]':
341
+ """Gets the compute_cluster_ids of this V1ClusterSpec. # noqa: E501
342
+
343
+
344
+ :return: The compute_cluster_ids of this V1ClusterSpec. # noqa: E501
345
+ :rtype: list[str]
346
+ """
347
+ return self._compute_cluster_ids
348
+
349
+ @compute_cluster_ids.setter
350
+ def compute_cluster_ids(self, compute_cluster_ids: 'list[str]'):
351
+ """Sets the compute_cluster_ids of this V1ClusterSpec.
352
+
353
+
354
+ :param compute_cluster_ids: The compute_cluster_ids of this V1ClusterSpec. # noqa: E501
355
+ :type: list[str]
356
+ """
357
+
358
+ self._compute_cluster_ids = compute_cluster_ids
359
+
303
360
  @property
304
361
  def deletion_options(self) -> 'V1ClusterDeletionOptions':
305
362
  """Gets the deletion_options of this V1ClusterSpec. # noqa: E501
@@ -470,6 +527,27 @@ class V1ClusterSpec(object):
470
527
 
471
528
  self._lambda_labs_v1 = lambda_labs_v1
472
529
 
530
+ @property
531
+ def lock_overprovisioning(self) -> 'bool':
532
+ """Gets the lock_overprovisioning of this V1ClusterSpec. # noqa: E501
533
+
534
+
535
+ :return: The lock_overprovisioning of this V1ClusterSpec. # noqa: E501
536
+ :rtype: bool
537
+ """
538
+ return self._lock_overprovisioning
539
+
540
+ @lock_overprovisioning.setter
541
+ def lock_overprovisioning(self, lock_overprovisioning: 'bool'):
542
+ """Sets the lock_overprovisioning of this V1ClusterSpec.
543
+
544
+
545
+ :param lock_overprovisioning: The lock_overprovisioning of this V1ClusterSpec. # noqa: E501
546
+ :type: bool
547
+ """
548
+
549
+ self._lock_overprovisioning = lock_overprovisioning
550
+
473
551
  @property
474
552
  def locked_zones(self) -> 'list[str]':
475
553
  """Gets the locked_zones of this V1ClusterSpec. # noqa: E501
@@ -52,6 +52,7 @@ class V1CreateDeploymentRequest(object):
52
52
  'name': 'str',
53
53
  'parameter_spec': 'V1ParameterizationSpec',
54
54
  'parent_template_id': 'str',
55
+ 'pipeline_reuse_deployment_between_runs': 'bool',
55
56
  'project_id': 'str',
56
57
  'recipients': 'V1DeploymentAlertingRecipients',
57
58
  'replicas': 'int',
@@ -71,6 +72,7 @@ class V1CreateDeploymentRequest(object):
71
72
  'name': 'name',
72
73
  'parameter_spec': 'parameterSpec',
73
74
  'parent_template_id': 'parentTemplateId',
75
+ 'pipeline_reuse_deployment_between_runs': 'pipelineReuseDeploymentBetweenRuns',
74
76
  'project_id': 'projectId',
75
77
  'recipients': 'recipients',
76
78
  'replicas': 'replicas',
@@ -78,7 +80,7 @@ class V1CreateDeploymentRequest(object):
78
80
  'strategy': 'strategy'
79
81
  }
80
82
 
81
- def __init__(self, api_standard: 'str' =None, apis: 'list[V1DeploymentAPI]' =None, autoscaling: 'V1AutoscalingSpec' =None, cloudspace_id: 'str' =None, cluster_id: 'str' =None, endpoint: 'V1Endpoint' =None, from_litserve: 'bool' =None, from_onboarding: 'bool' =None, name: 'str' =None, parameter_spec: 'V1ParameterizationSpec' =None, parent_template_id: 'str' =None, project_id: 'str' =None, recipients: 'V1DeploymentAlertingRecipients' =None, replicas: 'int' =None, spec: 'V1JobSpec' =None, strategy: 'V1DeploymentStrategy' =None): # noqa: E501
83
+ def __init__(self, api_standard: 'str' =None, apis: 'list[V1DeploymentAPI]' =None, autoscaling: 'V1AutoscalingSpec' =None, cloudspace_id: 'str' =None, cluster_id: 'str' =None, endpoint: 'V1Endpoint' =None, from_litserve: 'bool' =None, from_onboarding: 'bool' =None, name: 'str' =None, parameter_spec: 'V1ParameterizationSpec' =None, parent_template_id: 'str' =None, pipeline_reuse_deployment_between_runs: 'bool' =None, project_id: 'str' =None, recipients: 'V1DeploymentAlertingRecipients' =None, replicas: 'int' =None, spec: 'V1JobSpec' =None, strategy: 'V1DeploymentStrategy' =None): # noqa: E501
82
84
  """V1CreateDeploymentRequest - a model defined in Swagger""" # noqa: E501
83
85
  self._api_standard = None
84
86
  self._apis = None
@@ -91,6 +93,7 @@ class V1CreateDeploymentRequest(object):
91
93
  self._name = None
92
94
  self._parameter_spec = None
93
95
  self._parent_template_id = None
96
+ self._pipeline_reuse_deployment_between_runs = None
94
97
  self._project_id = None
95
98
  self._recipients = None
96
99
  self._replicas = None
@@ -119,6 +122,8 @@ class V1CreateDeploymentRequest(object):
119
122
  self.parameter_spec = parameter_spec
120
123
  if parent_template_id is not None:
121
124
  self.parent_template_id = parent_template_id
125
+ if pipeline_reuse_deployment_between_runs is not None:
126
+ self.pipeline_reuse_deployment_between_runs = pipeline_reuse_deployment_between_runs
122
127
  if project_id is not None:
123
128
  self.project_id = project_id
124
129
  if recipients is not None:
@@ -361,6 +366,27 @@ class V1CreateDeploymentRequest(object):
361
366
 
362
367
  self._parent_template_id = parent_template_id
363
368
 
369
+ @property
370
+ def pipeline_reuse_deployment_between_runs(self) -> 'bool':
371
+ """Gets the pipeline_reuse_deployment_between_runs of this V1CreateDeploymentRequest. # noqa: E501
372
+
373
+
374
+ :return: The pipeline_reuse_deployment_between_runs of this V1CreateDeploymentRequest. # noqa: E501
375
+ :rtype: bool
376
+ """
377
+ return self._pipeline_reuse_deployment_between_runs
378
+
379
+ @pipeline_reuse_deployment_between_runs.setter
380
+ def pipeline_reuse_deployment_between_runs(self, pipeline_reuse_deployment_between_runs: 'bool'):
381
+ """Sets the pipeline_reuse_deployment_between_runs of this V1CreateDeploymentRequest.
382
+
383
+
384
+ :param pipeline_reuse_deployment_between_runs: The pipeline_reuse_deployment_between_runs of this V1CreateDeploymentRequest. # noqa: E501
385
+ :type: bool
386
+ """
387
+
388
+ self._pipeline_reuse_deployment_between_runs = pipeline_reuse_deployment_between_runs
389
+
364
390
  @property
365
391
  def project_id(self) -> 'str':
366
392
  """Gets the project_id of this V1CreateDeploymentRequest. # noqa: E501