lightning-sdk 2025.10.27__py3-none-any.whl → 2025.10.31__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 (39) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/deployment_api.py +16 -0
  3. lightning_sdk/api/teamspace_api.py +1 -1
  4. lightning_sdk/cli/legacy/deploy/_auth.py +1 -2
  5. lightning_sdk/cli/utils/teamspace_selection.py +4 -5
  6. lightning_sdk/deployment/deployment.py +2 -1
  7. lightning_sdk/lightning_cloud/openapi/__init__.py +8 -0
  8. lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
  9. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +234 -0
  10. lightning_sdk/lightning_cloud/openapi/api/markets_service_api.py +145 -0
  11. lightning_sdk/lightning_cloud/openapi/models/__init__.py +7 -0
  12. lightning_sdk/lightning_cloud/openapi/models/message_id_actions_body.py +201 -0
  13. lightning_sdk/lightning_cloud/openapi/models/project_id_storagetransfers_body.py +27 -1
  14. lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +27 -1
  15. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +27 -1
  16. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_specialized_view.py +1 -0
  17. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  18. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +27 -1
  19. lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +27 -1
  20. lightning_sdk/lightning_cloud/openapi/models/v1_get_market_pricing_response.py +201 -0
  21. lightning_sdk/lightning_cloud/openapi/models/v1_incident_type.py +1 -0
  22. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_aws_config.py +279 -0
  23. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_settings_v1.py +253 -0
  24. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +53 -1
  25. lightning_sdk/lightning_cloud/openapi/models/v1_list_conversation_message_actions_response.py +123 -0
  26. lightning_sdk/lightning_cloud/openapi/models/v1_market_price.py +149 -0
  27. lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +27 -1
  28. lightning_sdk/lightning_cloud/openapi/models/v1_message_action.py +279 -0
  29. lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +27 -1
  30. lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +27 -1
  31. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +79 -183
  32. lightning_sdk/studio.py +3 -2
  33. lightning_sdk/utils/logging.py +72 -0
  34. {lightning_sdk-2025.10.27.dist-info → lightning_sdk-2025.10.31.dist-info}/METADATA +1 -1
  35. {lightning_sdk-2025.10.27.dist-info → lightning_sdk-2025.10.31.dist-info}/RECORD +39 -30
  36. {lightning_sdk-2025.10.27.dist-info → lightning_sdk-2025.10.31.dist-info}/LICENSE +0 -0
  37. {lightning_sdk-2025.10.27.dist-info → lightning_sdk-2025.10.31.dist-info}/WHEEL +0 -0
  38. {lightning_sdk-2025.10.27.dist-info → lightning_sdk-2025.10.31.dist-info}/entry_points.txt +0 -0
  39. {lightning_sdk-2025.10.27.dist-info → lightning_sdk-2025.10.31.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 MessageIdActionsBody(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
+ 'actioned_at': 'datetime',
45
+ 'block_id': 'str',
46
+ 'project_id': 'str',
47
+ 'type': 'str'
48
+ }
49
+
50
+ attribute_map = {
51
+ 'actioned_at': 'actionedAt',
52
+ 'block_id': 'blockId',
53
+ 'project_id': 'projectId',
54
+ 'type': 'type'
55
+ }
56
+
57
+ def __init__(self, actioned_at: 'datetime' =None, block_id: 'str' =None, project_id: 'str' =None, type: 'str' =None): # noqa: E501
58
+ """MessageIdActionsBody - a model defined in Swagger""" # noqa: E501
59
+ self._actioned_at = None
60
+ self._block_id = None
61
+ self._project_id = None
62
+ self._type = None
63
+ self.discriminator = None
64
+ if actioned_at is not None:
65
+ self.actioned_at = actioned_at
66
+ if block_id is not None:
67
+ self.block_id = block_id
68
+ if project_id is not None:
69
+ self.project_id = project_id
70
+ if type is not None:
71
+ self.type = type
72
+
73
+ @property
74
+ def actioned_at(self) -> 'datetime':
75
+ """Gets the actioned_at of this MessageIdActionsBody. # noqa: E501
76
+
77
+
78
+ :return: The actioned_at of this MessageIdActionsBody. # noqa: E501
79
+ :rtype: datetime
80
+ """
81
+ return self._actioned_at
82
+
83
+ @actioned_at.setter
84
+ def actioned_at(self, actioned_at: 'datetime'):
85
+ """Sets the actioned_at of this MessageIdActionsBody.
86
+
87
+
88
+ :param actioned_at: The actioned_at of this MessageIdActionsBody. # noqa: E501
89
+ :type: datetime
90
+ """
91
+
92
+ self._actioned_at = actioned_at
93
+
94
+ @property
95
+ def block_id(self) -> 'str':
96
+ """Gets the block_id of this MessageIdActionsBody. # noqa: E501
97
+
98
+
99
+ :return: The block_id of this MessageIdActionsBody. # noqa: E501
100
+ :rtype: str
101
+ """
102
+ return self._block_id
103
+
104
+ @block_id.setter
105
+ def block_id(self, block_id: 'str'):
106
+ """Sets the block_id of this MessageIdActionsBody.
107
+
108
+
109
+ :param block_id: The block_id of this MessageIdActionsBody. # noqa: E501
110
+ :type: str
111
+ """
112
+
113
+ self._block_id = block_id
114
+
115
+ @property
116
+ def project_id(self) -> 'str':
117
+ """Gets the project_id of this MessageIdActionsBody. # noqa: E501
118
+
119
+
120
+ :return: The project_id of this MessageIdActionsBody. # noqa: E501
121
+ :rtype: str
122
+ """
123
+ return self._project_id
124
+
125
+ @project_id.setter
126
+ def project_id(self, project_id: 'str'):
127
+ """Sets the project_id of this MessageIdActionsBody.
128
+
129
+
130
+ :param project_id: The project_id of this MessageIdActionsBody. # noqa: E501
131
+ :type: str
132
+ """
133
+
134
+ self._project_id = project_id
135
+
136
+ @property
137
+ def type(self) -> 'str':
138
+ """Gets the type of this MessageIdActionsBody. # noqa: E501
139
+
140
+
141
+ :return: The type of this MessageIdActionsBody. # noqa: E501
142
+ :rtype: str
143
+ """
144
+ return self._type
145
+
146
+ @type.setter
147
+ def type(self, type: 'str'):
148
+ """Sets the type of this MessageIdActionsBody.
149
+
150
+
151
+ :param type: The type of this MessageIdActionsBody. # noqa: E501
152
+ :type: str
153
+ """
154
+
155
+ self._type = type
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(MessageIdActionsBody, 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: 'MessageIdActionsBody') -> bool:
193
+ """Returns true if both objects are equal"""
194
+ if not isinstance(other, MessageIdActionsBody):
195
+ return False
196
+
197
+ return self.__dict__ == other.__dict__
198
+
199
+ def __ne__(self, other: 'MessageIdActionsBody') -> bool:
200
+ """Returns true if both objects are not equal"""
201
+ return not self == other
@@ -41,25 +41,51 @@ class ProjectIdStoragetransfersBody(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
+ 'new_folder_name': 'str',
44
45
  'source_data_connection_id': 'str',
45
46
  'target_data_connection_id': 'str'
46
47
  }
47
48
 
48
49
  attribute_map = {
50
+ 'new_folder_name': 'newFolderName',
49
51
  'source_data_connection_id': 'sourceDataConnectionId',
50
52
  'target_data_connection_id': 'targetDataConnectionId'
51
53
  }
52
54
 
53
- def __init__(self, source_data_connection_id: 'str' =None, target_data_connection_id: 'str' =None): # noqa: E501
55
+ def __init__(self, new_folder_name: 'str' =None, source_data_connection_id: 'str' =None, target_data_connection_id: 'str' =None): # noqa: E501
54
56
  """ProjectIdStoragetransfersBody - a model defined in Swagger""" # noqa: E501
57
+ self._new_folder_name = None
55
58
  self._source_data_connection_id = None
56
59
  self._target_data_connection_id = None
57
60
  self.discriminator = None
61
+ if new_folder_name is not None:
62
+ self.new_folder_name = new_folder_name
58
63
  if source_data_connection_id is not None:
59
64
  self.source_data_connection_id = source_data_connection_id
60
65
  if target_data_connection_id is not None:
61
66
  self.target_data_connection_id = target_data_connection_id
62
67
 
68
+ @property
69
+ def new_folder_name(self) -> 'str':
70
+ """Gets the new_folder_name of this ProjectIdStoragetransfersBody. # noqa: E501
71
+
72
+
73
+ :return: The new_folder_name of this ProjectIdStoragetransfersBody. # noqa: E501
74
+ :rtype: str
75
+ """
76
+ return self._new_folder_name
77
+
78
+ @new_folder_name.setter
79
+ def new_folder_name(self, new_folder_name: 'str'):
80
+ """Sets the new_folder_name of this ProjectIdStoragetransfersBody.
81
+
82
+
83
+ :param new_folder_name: The new_folder_name of this ProjectIdStoragetransfersBody. # noqa: E501
84
+ :type: str
85
+ """
86
+
87
+ self._new_folder_name = new_folder_name
88
+
63
89
  @property
64
90
  def source_data_connection_id(self) -> 'str':
65
91
  """Gets the source_data_connection_id of this ProjectIdStoragetransfersBody. # noqa: E501
@@ -54,6 +54,7 @@ class ProjectsIdBody(object):
54
54
  'auto_replenish_amount': 'float',
55
55
  'auto_replenish_threshold': 'float',
56
56
  'auto_switch_machine': 'bool',
57
+ 'budgeting_enabled': 'bool',
57
58
  'default_machine_type': 'str',
58
59
  'description': 'str',
59
60
  'display_name': 'str',
@@ -83,6 +84,7 @@ class ProjectsIdBody(object):
83
84
  'auto_replenish_amount': 'autoReplenishAmount',
84
85
  'auto_replenish_threshold': 'autoReplenishThreshold',
85
86
  'auto_switch_machine': 'autoSwitchMachine',
87
+ 'budgeting_enabled': 'budgetingEnabled',
86
88
  'default_machine_type': 'defaultMachineType',
87
89
  'description': 'description',
88
90
  'display_name': 'displayName',
@@ -98,7 +100,7 @@ class ProjectsIdBody(object):
98
100
  'switch_to_default_machine_on_idle': 'switchToDefaultMachineOnIdle'
99
101
  }
100
102
 
101
- def __init__(self, allow_aws_saas: 'bool' =None, allow_credits_auto_replenish: 'bool' =None, allow_dgx_saas: 'bool' =None, allow_external_project_duplication: 'bool' =None, allow_gcp_saas: 'bool' =None, allow_lambda_saas: 'bool' =None, allow_lightning_saas: 'bool' =None, allow_nebius_saas: 'bool' =None, allow_voltage_park_saas: 'bool' =None, allow_vultr_saas: 'bool' =None, auto_replenish_amount: 'float' =None, auto_replenish_threshold: 'float' =None, auto_switch_machine: 'bool' =None, default_machine_type: 'str' =None, description: 'str' =None, display_name: 'str' =None, layout_config: 'list[V1ProjectTab]' =None, name: 'str' =None, organization_billing_enabled: 'bool' =None, preferred_cluster: 'str' =None, preferred_deployment_provider: 'str' =None, preferred_studio_provider: 'str' =None, quotas: 'V1Quotas' =None, same_compute_on_resume: 'bool' =None, start_studio_on_spot_instance: 'bool' =None, switch_to_default_machine_on_idle: 'bool' =None): # noqa: E501
103
+ def __init__(self, allow_aws_saas: 'bool' =None, allow_credits_auto_replenish: 'bool' =None, allow_dgx_saas: 'bool' =None, allow_external_project_duplication: 'bool' =None, allow_gcp_saas: 'bool' =None, allow_lambda_saas: 'bool' =None, allow_lightning_saas: 'bool' =None, allow_nebius_saas: 'bool' =None, allow_voltage_park_saas: 'bool' =None, allow_vultr_saas: 'bool' =None, auto_replenish_amount: 'float' =None, auto_replenish_threshold: 'float' =None, auto_switch_machine: 'bool' =None, budgeting_enabled: 'bool' =None, default_machine_type: 'str' =None, description: 'str' =None, display_name: 'str' =None, layout_config: 'list[V1ProjectTab]' =None, name: 'str' =None, organization_billing_enabled: 'bool' =None, preferred_cluster: 'str' =None, preferred_deployment_provider: 'str' =None, preferred_studio_provider: 'str' =None, quotas: 'V1Quotas' =None, same_compute_on_resume: 'bool' =None, start_studio_on_spot_instance: 'bool' =None, switch_to_default_machine_on_idle: 'bool' =None): # noqa: E501
102
104
  """ProjectsIdBody - a model defined in Swagger""" # noqa: E501
103
105
  self._allow_aws_saas = None
104
106
  self._allow_credits_auto_replenish = None
@@ -113,6 +115,7 @@ class ProjectsIdBody(object):
113
115
  self._auto_replenish_amount = None
114
116
  self._auto_replenish_threshold = None
115
117
  self._auto_switch_machine = None
118
+ self._budgeting_enabled = None
116
119
  self._default_machine_type = None
117
120
  self._description = None
118
121
  self._display_name = None
@@ -153,6 +156,8 @@ class ProjectsIdBody(object):
153
156
  self.auto_replenish_threshold = auto_replenish_threshold
154
157
  if auto_switch_machine is not None:
155
158
  self.auto_switch_machine = auto_switch_machine
159
+ if budgeting_enabled is not None:
160
+ self.budgeting_enabled = budgeting_enabled
156
161
  if default_machine_type is not None:
157
162
  self.default_machine_type = default_machine_type
158
163
  if description is not None:
@@ -453,6 +458,27 @@ class ProjectsIdBody(object):
453
458
 
454
459
  self._auto_switch_machine = auto_switch_machine
455
460
 
461
+ @property
462
+ def budgeting_enabled(self) -> 'bool':
463
+ """Gets the budgeting_enabled of this ProjectsIdBody. # noqa: E501
464
+
465
+
466
+ :return: The budgeting_enabled of this ProjectsIdBody. # noqa: E501
467
+ :rtype: bool
468
+ """
469
+ return self._budgeting_enabled
470
+
471
+ @budgeting_enabled.setter
472
+ def budgeting_enabled(self, budgeting_enabled: 'bool'):
473
+ """Sets the budgeting_enabled of this ProjectsIdBody.
474
+
475
+
476
+ :param budgeting_enabled: The budgeting_enabled of this ProjectsIdBody. # noqa: E501
477
+ :type: bool
478
+ """
479
+
480
+ self._budgeting_enabled = budgeting_enabled
481
+
456
482
  @property
457
483
  def default_machine_type(self) -> 'str':
458
484
  """Gets the default_machine_type of this ProjectsIdBody. # noqa: E501
@@ -44,6 +44,7 @@ class V1CloudSpaceEnvironmentTemplateConfig(object):
44
44
  'allowed_machines': 'list[str]',
45
45
  'default_machine': 'str',
46
46
  'environment_type': 'V1CloudSpaceEnvironmentType',
47
+ 'files_template_id': 'str',
47
48
  'initial_setup_script_text': 'str',
48
49
  'machine_image_version': 'str',
49
50
  'plugins': 'list[str]',
@@ -55,6 +56,7 @@ class V1CloudSpaceEnvironmentTemplateConfig(object):
55
56
  'allowed_machines': 'allowedMachines',
56
57
  'default_machine': 'defaultMachine',
57
58
  'environment_type': 'environmentType',
59
+ 'files_template_id': 'filesTemplateId',
58
60
  'initial_setup_script_text': 'initialSetupScriptText',
59
61
  'machine_image_version': 'machineImageVersion',
60
62
  'plugins': 'plugins',
@@ -62,11 +64,12 @@ class V1CloudSpaceEnvironmentTemplateConfig(object):
62
64
  'specialized_view': 'specializedView'
63
65
  }
64
66
 
65
- def __init__(self, allowed_machines: 'list[str]' =None, default_machine: 'str' =None, environment_type: 'V1CloudSpaceEnvironmentType' =None, initial_setup_script_text: 'str' =None, machine_image_version: 'str' =None, plugins: 'list[str]' =None, setup_script_text: 'str' =None, specialized_view: 'V1CloudSpaceSpecializedView' =None): # noqa: E501
67
+ def __init__(self, allowed_machines: 'list[str]' =None, default_machine: 'str' =None, environment_type: 'V1CloudSpaceEnvironmentType' =None, files_template_id: 'str' =None, initial_setup_script_text: 'str' =None, machine_image_version: 'str' =None, plugins: 'list[str]' =None, setup_script_text: 'str' =None, specialized_view: 'V1CloudSpaceSpecializedView' =None): # noqa: E501
66
68
  """V1CloudSpaceEnvironmentTemplateConfig - a model defined in Swagger""" # noqa: E501
67
69
  self._allowed_machines = None
68
70
  self._default_machine = None
69
71
  self._environment_type = None
72
+ self._files_template_id = None
70
73
  self._initial_setup_script_text = None
71
74
  self._machine_image_version = None
72
75
  self._plugins = None
@@ -79,6 +82,8 @@ class V1CloudSpaceEnvironmentTemplateConfig(object):
79
82
  self.default_machine = default_machine
80
83
  if environment_type is not None:
81
84
  self.environment_type = environment_type
85
+ if files_template_id is not None:
86
+ self.files_template_id = files_template_id
82
87
  if initial_setup_script_text is not None:
83
88
  self.initial_setup_script_text = initial_setup_script_text
84
89
  if machine_image_version is not None:
@@ -153,6 +158,27 @@ class V1CloudSpaceEnvironmentTemplateConfig(object):
153
158
 
154
159
  self._environment_type = environment_type
155
160
 
161
+ @property
162
+ def files_template_id(self) -> 'str':
163
+ """Gets the files_template_id of this V1CloudSpaceEnvironmentTemplateConfig. # noqa: E501
164
+
165
+
166
+ :return: The files_template_id of this V1CloudSpaceEnvironmentTemplateConfig. # noqa: E501
167
+ :rtype: str
168
+ """
169
+ return self._files_template_id
170
+
171
+ @files_template_id.setter
172
+ def files_template_id(self, files_template_id: 'str'):
173
+ """Sets the files_template_id of this V1CloudSpaceEnvironmentTemplateConfig.
174
+
175
+
176
+ :param files_template_id: The files_template_id of this V1CloudSpaceEnvironmentTemplateConfig. # noqa: E501
177
+ :type: str
178
+ """
179
+
180
+ self._files_template_id = files_template_id
181
+
156
182
  @property
157
183
  def initial_setup_script_text(self) -> 'str':
158
184
  """Gets the initial_setup_script_text of this V1CloudSpaceEnvironmentTemplateConfig. # noqa: E501
@@ -40,6 +40,7 @@ class V1CloudSpaceSpecializedView(object):
40
40
  UNSPECIFIED = "CLOUD_SPACE_SPECIALIZED_VIEW_UNSPECIFIED"
41
41
  DEFAULT = "CLOUD_SPACE_SPECIALIZED_VIEW_DEFAULT"
42
42
  STREAMLIT = "CLOUD_SPACE_SPECIALIZED_VIEW_STREAMLIT"
43
+ SERVERLESS = "CLOUD_SPACE_SPECIALIZED_VIEW_SERVERLESS"
43
44
  """
44
45
  Attributes:
45
46
  swagger_types (dict): The key is attribute name
@@ -43,6 +43,7 @@ class V1ClusterAccelerator(object):
43
43
  swagger_types = {
44
44
  'accelerator_type': 'str',
45
45
  'allowed_resources': 'list[str]',
46
+ 'availability_strategy': 'str',
46
47
  'available_in_seconds': 'str',
47
48
  'available_in_seconds_spot': 'str',
48
49
  'available_zones': 'list[str]',
@@ -99,6 +100,7 @@ class V1ClusterAccelerator(object):
99
100
  attribute_map = {
100
101
  'accelerator_type': 'acceleratorType',
101
102
  'allowed_resources': 'allowedResources',
103
+ 'availability_strategy': 'availabilityStrategy',
102
104
  'available_in_seconds': 'availableInSeconds',
103
105
  'available_in_seconds_spot': 'availableInSecondsSpot',
104
106
  'available_zones': 'availableZones',
@@ -152,10 +154,11 @@ class V1ClusterAccelerator(object):
152
154
  'spot_quota_page_url': 'spotQuotaPageUrl'
153
155
  }
154
156
 
155
- def __init__(self, accelerator_type: 'str' =None, allowed_resources: 'list[str]' =None, available_in_seconds: 'str' =None, available_in_seconds_spot: 'str' =None, available_zones: 'list[str]' =None, byoc_only: 'bool' =None, capacity_block_only: 'bool' =None, capacity_block_price: 'float' =None, capacity_blocks_available: 'list[V1ClusterCapacityReservation]' =None, cluster_id: 'str' =None, cost: 'float' =None, detailed_quotas_info: 'list[V1AcceleratorQuotaInfo]' =None, device_card: 'str' =None, device_info: 'str' =None, display_name: 'str' =None, dws_cost: 'float' =None, dws_only: 'bool' =None, dws_supported: 'bool' =None, enabled: 'bool' =None, family: 'str' =None, instance_id: 'str' =None, is_custom: 'bool' =None, is_tier_restricted: 'bool' =None, lightning_interruptible: 'bool' =None, local_disk_included: 'bool' =None, local_disk_size: 'str' =None, local_disk_supported: 'bool' =None, local_disks_count: 'str' =None, max_available_quota: 'str' =None, non_spot: 'bool' =None, out_of_capacity: 'bool' =None, persistent_disk_supported: 'bool' =None, provider: 'V1CloudProvider' =None, quota_checked_at: 'datetime' =None, quota_code: 'str' =None, quota_name: 'str' =None, quota_page_url: 'str' =None, quota_service_code: 'str' =None, quota_utilization: 'str' =None, quota_value: 'str' =None, reservable: 'bool' =None, reservation_available_zones: 'list[str]' =None, reservation_quota_code: 'str' =None, reservation_quota_name: 'str' =None, reservation_quota_page_url: 'str' =None, resources: 'V1Resources' =None, secondary_instance_id: 'str' =None, slug: 'str' =None, slug_multi_cloud: 'str' =None, spot_price: 'float' =None, spot_quota_code: 'str' =None, spot_quota_name: 'str' =None, spot_quota_page_url: 'str' =None): # noqa: E501
157
+ def __init__(self, accelerator_type: 'str' =None, allowed_resources: 'list[str]' =None, availability_strategy: 'str' =None, available_in_seconds: 'str' =None, available_in_seconds_spot: 'str' =None, available_zones: 'list[str]' =None, byoc_only: 'bool' =None, capacity_block_only: 'bool' =None, capacity_block_price: 'float' =None, capacity_blocks_available: 'list[V1ClusterCapacityReservation]' =None, cluster_id: 'str' =None, cost: 'float' =None, detailed_quotas_info: 'list[V1AcceleratorQuotaInfo]' =None, device_card: 'str' =None, device_info: 'str' =None, display_name: 'str' =None, dws_cost: 'float' =None, dws_only: 'bool' =None, dws_supported: 'bool' =None, enabled: 'bool' =None, family: 'str' =None, instance_id: 'str' =None, is_custom: 'bool' =None, is_tier_restricted: 'bool' =None, lightning_interruptible: 'bool' =None, local_disk_included: 'bool' =None, local_disk_size: 'str' =None, local_disk_supported: 'bool' =None, local_disks_count: 'str' =None, max_available_quota: 'str' =None, non_spot: 'bool' =None, out_of_capacity: 'bool' =None, persistent_disk_supported: 'bool' =None, provider: 'V1CloudProvider' =None, quota_checked_at: 'datetime' =None, quota_code: 'str' =None, quota_name: 'str' =None, quota_page_url: 'str' =None, quota_service_code: 'str' =None, quota_utilization: 'str' =None, quota_value: 'str' =None, reservable: 'bool' =None, reservation_available_zones: 'list[str]' =None, reservation_quota_code: 'str' =None, reservation_quota_name: 'str' =None, reservation_quota_page_url: 'str' =None, resources: 'V1Resources' =None, secondary_instance_id: 'str' =None, slug: 'str' =None, slug_multi_cloud: 'str' =None, spot_price: 'float' =None, spot_quota_code: 'str' =None, spot_quota_name: 'str' =None, spot_quota_page_url: 'str' =None): # noqa: E501
156
158
  """V1ClusterAccelerator - a model defined in Swagger""" # noqa: E501
157
159
  self._accelerator_type = None
158
160
  self._allowed_resources = None
161
+ self._availability_strategy = None
159
162
  self._available_in_seconds = None
160
163
  self._available_in_seconds_spot = None
161
164
  self._available_zones = None
@@ -212,6 +215,8 @@ class V1ClusterAccelerator(object):
212
215
  self.accelerator_type = accelerator_type
213
216
  if allowed_resources is not None:
214
217
  self.allowed_resources = allowed_resources
218
+ if availability_strategy is not None:
219
+ self.availability_strategy = availability_strategy
215
220
  if available_in_seconds is not None:
216
221
  self.available_in_seconds = available_in_seconds
217
222
  if available_in_seconds_spot is not None:
@@ -357,6 +362,27 @@ class V1ClusterAccelerator(object):
357
362
 
358
363
  self._allowed_resources = allowed_resources
359
364
 
365
+ @property
366
+ def availability_strategy(self) -> 'str':
367
+ """Gets the availability_strategy of this V1ClusterAccelerator. # noqa: E501
368
+
369
+
370
+ :return: The availability_strategy of this V1ClusterAccelerator. # noqa: E501
371
+ :rtype: str
372
+ """
373
+ return self._availability_strategy
374
+
375
+ @availability_strategy.setter
376
+ def availability_strategy(self, availability_strategy: 'str'):
377
+ """Sets the availability_strategy of this V1ClusterAccelerator.
378
+
379
+
380
+ :param availability_strategy: The availability_strategy of this V1ClusterAccelerator. # noqa: E501
381
+ :type: str
382
+ """
383
+
384
+ self._availability_strategy = availability_strategy
385
+
360
386
  @property
361
387
  def available_in_seconds(self) -> 'str':
362
388
  """Gets the available_in_seconds of this V1ClusterAccelerator. # noqa: E501
@@ -52,6 +52,7 @@ class V1ClusterCapacityReservation(object):
52
52
  'in_use_aggregate': 'str',
53
53
  'instance_type': 'str',
54
54
  'match_pattern': 'str',
55
+ 'node_group_name': 'str',
55
56
  'num_instances': 'str',
56
57
  'project_id': 'str',
57
58
  'region': 'str',
@@ -71,6 +72,7 @@ class V1ClusterCapacityReservation(object):
71
72
  'in_use_aggregate': 'inUseAggregate',
72
73
  'instance_type': 'instanceType',
73
74
  'match_pattern': 'matchPattern',
75
+ 'node_group_name': 'nodeGroupName',
74
76
  'num_instances': 'numInstances',
75
77
  'project_id': 'projectId',
76
78
  'region': 'region',
@@ -78,7 +80,7 @@ class V1ClusterCapacityReservation(object):
78
80
  'zone': 'zone'
79
81
  }
80
82
 
81
- def __init__(self, aggregate_availability: 'str' =None, capacity_reservation_type: 'str' =None, cloud_provider_capacity_reservation_id: 'str' =None, cluster_id: 'str' =None, end_time: 'datetime' =None, full_cloud_provider_reservation_string: 'str' =None, id: 'str' =None, in_use: 'str' =None, in_use_aggregate: 'str' =None, instance_type: 'str' =None, match_pattern: 'str' =None, num_instances: 'str' =None, project_id: 'str' =None, region: 'str' =None, start_time: 'datetime' =None, zone: 'str' =None): # noqa: E501
83
+ def __init__(self, aggregate_availability: 'str' =None, capacity_reservation_type: 'str' =None, cloud_provider_capacity_reservation_id: 'str' =None, cluster_id: 'str' =None, end_time: 'datetime' =None, full_cloud_provider_reservation_string: 'str' =None, id: 'str' =None, in_use: 'str' =None, in_use_aggregate: 'str' =None, instance_type: 'str' =None, match_pattern: 'str' =None, node_group_name: 'str' =None, num_instances: 'str' =None, project_id: 'str' =None, region: 'str' =None, start_time: 'datetime' =None, zone: 'str' =None): # noqa: E501
82
84
  """V1ClusterCapacityReservation - a model defined in Swagger""" # noqa: E501
83
85
  self._aggregate_availability = None
84
86
  self._capacity_reservation_type = None
@@ -91,6 +93,7 @@ class V1ClusterCapacityReservation(object):
91
93
  self._in_use_aggregate = None
92
94
  self._instance_type = None
93
95
  self._match_pattern = None
96
+ self._node_group_name = None
94
97
  self._num_instances = None
95
98
  self._project_id = None
96
99
  self._region = None
@@ -119,6 +122,8 @@ class V1ClusterCapacityReservation(object):
119
122
  self.instance_type = instance_type
120
123
  if match_pattern is not None:
121
124
  self.match_pattern = match_pattern
125
+ if node_group_name is not None:
126
+ self.node_group_name = node_group_name
122
127
  if num_instances is not None:
123
128
  self.num_instances = num_instances
124
129
  if project_id is not None:
@@ -361,6 +366,27 @@ class V1ClusterCapacityReservation(object):
361
366
 
362
367
  self._match_pattern = match_pattern
363
368
 
369
+ @property
370
+ def node_group_name(self) -> 'str':
371
+ """Gets the node_group_name of this V1ClusterCapacityReservation. # noqa: E501
372
+
373
+
374
+ :return: The node_group_name of this V1ClusterCapacityReservation. # noqa: E501
375
+ :rtype: str
376
+ """
377
+ return self._node_group_name
378
+
379
+ @node_group_name.setter
380
+ def node_group_name(self, node_group_name: 'str'):
381
+ """Sets the node_group_name of this V1ClusterCapacityReservation.
382
+
383
+
384
+ :param node_group_name: The node_group_name of this V1ClusterCapacityReservation. # noqa: E501
385
+ :type: str
386
+ """
387
+
388
+ self._node_group_name = node_group_name
389
+
364
390
  @property
365
391
  def num_instances(self) -> 'str':
366
392
  """Gets the num_instances of this V1ClusterCapacityReservation. # noqa: E501
@@ -44,6 +44,7 @@ class V1CreateProjectRequest(object):
44
44
  'allow_credits_auto_replenish': 'bool',
45
45
  'auto_replenish_amount': 'float',
46
46
  'auto_replenish_threshold': 'float',
47
+ 'budgeting_enabled': 'bool',
47
48
  'default_machine_image_version': 'str',
48
49
  'default_machine_type': 'str',
49
50
  'description': 'str',
@@ -60,6 +61,7 @@ class V1CreateProjectRequest(object):
60
61
  'allow_credits_auto_replenish': 'allowCreditsAutoReplenish',
61
62
  'auto_replenish_amount': 'autoReplenishAmount',
62
63
  'auto_replenish_threshold': 'autoReplenishThreshold',
64
+ 'budgeting_enabled': 'budgetingEnabled',
63
65
  'default_machine_image_version': 'defaultMachineImageVersion',
64
66
  'default_machine_type': 'defaultMachineType',
65
67
  'description': 'description',
@@ -72,11 +74,12 @@ class V1CreateProjectRequest(object):
72
74
  'quotas': 'quotas'
73
75
  }
74
76
 
75
- def __init__(self, allow_credits_auto_replenish: 'bool' =None, auto_replenish_amount: 'float' =None, auto_replenish_threshold: 'float' =None, default_machine_image_version: 'str' =None, default_machine_type: 'str' =None, description: 'str' =None, display_name: 'str' =None, layout_config: 'list[V1ProjectTab]' =None, name: 'str' =None, organization_billing_enabled: 'bool' =None, organization_id: 'str' =None, preferred_cluster: 'str' =None, quotas: 'V1Quotas' =None): # noqa: E501
77
+ def __init__(self, allow_credits_auto_replenish: 'bool' =None, auto_replenish_amount: 'float' =None, auto_replenish_threshold: 'float' =None, budgeting_enabled: 'bool' =None, default_machine_image_version: 'str' =None, default_machine_type: 'str' =None, description: 'str' =None, display_name: 'str' =None, layout_config: 'list[V1ProjectTab]' =None, name: 'str' =None, organization_billing_enabled: 'bool' =None, organization_id: 'str' =None, preferred_cluster: 'str' =None, quotas: 'V1Quotas' =None): # noqa: E501
76
78
  """V1CreateProjectRequest - a model defined in Swagger""" # noqa: E501
77
79
  self._allow_credits_auto_replenish = None
78
80
  self._auto_replenish_amount = None
79
81
  self._auto_replenish_threshold = None
82
+ self._budgeting_enabled = None
80
83
  self._default_machine_image_version = None
81
84
  self._default_machine_type = None
82
85
  self._description = None
@@ -94,6 +97,8 @@ class V1CreateProjectRequest(object):
94
97
  self.auto_replenish_amount = auto_replenish_amount
95
98
  if auto_replenish_threshold is not None:
96
99
  self.auto_replenish_threshold = auto_replenish_threshold
100
+ if budgeting_enabled is not None:
101
+ self.budgeting_enabled = budgeting_enabled
97
102
  if default_machine_image_version is not None:
98
103
  self.default_machine_image_version = default_machine_image_version
99
104
  if default_machine_type is not None:
@@ -178,6 +183,27 @@ class V1CreateProjectRequest(object):
178
183
 
179
184
  self._auto_replenish_threshold = auto_replenish_threshold
180
185
 
186
+ @property
187
+ def budgeting_enabled(self) -> 'bool':
188
+ """Gets the budgeting_enabled of this V1CreateProjectRequest. # noqa: E501
189
+
190
+
191
+ :return: The budgeting_enabled of this V1CreateProjectRequest. # noqa: E501
192
+ :rtype: bool
193
+ """
194
+ return self._budgeting_enabled
195
+
196
+ @budgeting_enabled.setter
197
+ def budgeting_enabled(self, budgeting_enabled: 'bool'):
198
+ """Sets the budgeting_enabled of this V1CreateProjectRequest.
199
+
200
+
201
+ :param budgeting_enabled: The budgeting_enabled of this V1CreateProjectRequest. # noqa: E501
202
+ :type: bool
203
+ """
204
+
205
+ self._budgeting_enabled = budgeting_enabled
206
+
181
207
  @property
182
208
  def default_machine_image_version(self) -> 'str':
183
209
  """Gets the default_machine_image_version of this V1CreateProjectRequest. # noqa: E501