lightning-sdk 2026.1.22__py3-none-any.whl → 2026.1.27__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 (58) hide show
  1. lightning_sdk/__version__.py +1 -1
  2. lightning_sdk/api/studio_api.py +7 -14
  3. lightning_sdk/api/teamspace_api.py +155 -48
  4. lightning_sdk/api/utils.py +8 -0
  5. lightning_sdk/cli/cp/__init__.py +14 -11
  6. lightning_sdk/cli/cp/teamspace_uploads.py +93 -0
  7. lightning_sdk/cli/legacy/download.py +29 -98
  8. lightning_sdk/cli/legacy/upload.py +24 -31
  9. lightning_sdk/cli/studio/cp.py +8 -5
  10. lightning_sdk/cli/studio/ls.py +1 -1
  11. lightning_sdk/cli/studio/rm.py +1 -1
  12. lightning_sdk/cli/utils/{studio_filesystem.py → filesystem.py} +43 -5
  13. lightning_sdk/exceptions.py +27 -0
  14. lightning_sdk/lightning_cloud/openapi/__init__.py +14 -12
  15. lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
  16. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +5 -1
  17. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +163 -466
  18. lightning_sdk/lightning_cloud/openapi/api/container_registry_service_api.py +456 -0
  19. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +5 -1
  20. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +11 -11
  21. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +113 -0
  22. lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +113 -0
  23. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +5 -1
  24. lightning_sdk/lightning_cloud/openapi/models/__init__.py +13 -12
  25. lightning_sdk/lightning_cloud/openapi/models/{v1_container_registry_integration.py → container_registry_config_ecr.py} +49 -23
  26. lightning_sdk/lightning_cloud/openapi/models/{v1_container_registry_status.py → container_registry_provider.py} +14 -10
  27. lightning_sdk/lightning_cloud/openapi/models/container_registry_service_create_container_registry_body.py +201 -0
  28. lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_config_input.py → container_registry_service_refresh_container_registry_credentials_body.py} +21 -21
  29. lightning_sdk/lightning_cloud/openapi/models/jobs_service_duplicate_deployment_body.py +175 -0
  30. lightning_sdk/lightning_cloud/openapi/models/organizations_service_update_org_role_body.py +175 -0
  31. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +1 -0
  32. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +27 -1
  33. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
  34. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry.py +63 -89
  35. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_add_container_registry_body.py → v1_container_registry_config.py} +16 -16
  36. lightning_sdk/lightning_cloud/openapi/models/{v1_validate_container_registry_response.py → v1_container_registry_scopes.py} +39 -39
  37. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_validate_container_registry_body.py → v1_create_container_registry_response.py} +6 -6
  38. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_refresh_container_registry_credentials_body.py → v1_delete_org_cluster_capacity_reservation_response.py} +6 -6
  39. lightning_sdk/lightning_cloud/openapi/models/v1_describe_org_cluster_capacity_reservation_response.py +201 -0
  40. lightning_sdk/lightning_cloud/openapi/models/v1_generic_job_spec.py +79 -1
  41. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +27 -1
  42. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +1 -27
  43. lightning_sdk/lightning_cloud/openapi/models/v1_list_container_registries_response.py +6 -6
  44. lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_config.py → v1_mithril_direct_v1.py} +51 -51
  45. lightning_sdk/lightning_cloud/openapi/models/v1_refresh_container_registry_credentials_response.py +1 -27
  46. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +53 -53
  47. lightning_sdk/lightning_cloud/openapi/rest.py +2 -2
  48. lightning_sdk/teamspace.py +28 -7
  49. {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.27.dist-info}/METADATA +1 -1
  50. {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.27.dist-info}/RECORD +55 -52
  51. lightning_sdk/lightning_cloud/openapi/models/v1_add_container_registry_response.py +0 -123
  52. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_info.py +0 -281
  53. lightning_sdk/lightning_cloud/openapi/models/v1_ecr_registry_details.py +0 -201
  54. /lightning_sdk/lightning_cloud/openapi/models/{v1_list_filesystem_mmts_response.py → v1_list_filesystem_mm_ts_response.py} +0 -0
  55. {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.27.dist-info}/LICENSE +0 -0
  56. {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.27.dist-info}/WHEEL +0 -0
  57. {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.27.dist-info}/entry_points.txt +0 -0
  58. {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.27.dist-info}/top_level.txt +0 -0
@@ -28,7 +28,7 @@ if TYPE_CHECKING:
28
28
  from datetime import datetime
29
29
  from lightning_sdk.lightning_cloud.openapi.models import *
30
30
 
31
- class V1ECRRegistryConfigInput(object):
31
+ class ContainerRegistryServiceRefreshContainerRegistryCredentialsBody(object):
32
32
  """NOTE: This class is auto generated by the swagger code generator program.
33
33
 
34
34
  Do not edit the class manually.
@@ -41,40 +41,40 @@ class V1ECRRegistryConfigInput(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
- 'registry_url': 'str'
44
+ 'org_id': 'str'
45
45
  }
46
46
 
47
47
  attribute_map = {
48
- 'registry_url': 'registryUrl'
48
+ 'org_id': 'orgId'
49
49
  }
50
50
 
51
- def __init__(self, registry_url: 'str' =None): # noqa: E501
52
- """V1ECRRegistryConfigInput - a model defined in Swagger""" # noqa: E501
53
- self._registry_url = None
51
+ def __init__(self, org_id: 'str' =None): # noqa: E501
52
+ """ContainerRegistryServiceRefreshContainerRegistryCredentialsBody - a model defined in Swagger""" # noqa: E501
53
+ self._org_id = None
54
54
  self.discriminator = None
55
- if registry_url is not None:
56
- self.registry_url = registry_url
55
+ if org_id is not None:
56
+ self.org_id = org_id
57
57
 
58
58
  @property
59
- def registry_url(self) -> 'str':
60
- """Gets the registry_url of this V1ECRRegistryConfigInput. # noqa: E501
59
+ def org_id(self) -> 'str':
60
+ """Gets the org_id of this ContainerRegistryServiceRefreshContainerRegistryCredentialsBody. # noqa: E501
61
61
 
62
62
 
63
- :return: The registry_url of this V1ECRRegistryConfigInput. # noqa: E501
63
+ :return: The org_id of this ContainerRegistryServiceRefreshContainerRegistryCredentialsBody. # noqa: E501
64
64
  :rtype: str
65
65
  """
66
- return self._registry_url
66
+ return self._org_id
67
67
 
68
- @registry_url.setter
69
- def registry_url(self, registry_url: 'str'):
70
- """Sets the registry_url of this V1ECRRegistryConfigInput.
68
+ @org_id.setter
69
+ def org_id(self, org_id: 'str'):
70
+ """Sets the org_id of this ContainerRegistryServiceRefreshContainerRegistryCredentialsBody.
71
71
 
72
72
 
73
- :param registry_url: The registry_url of this V1ECRRegistryConfigInput. # noqa: E501
73
+ :param org_id: The org_id of this ContainerRegistryServiceRefreshContainerRegistryCredentialsBody. # noqa: E501
74
74
  :type: str
75
75
  """
76
76
 
77
- self._registry_url = registry_url
77
+ self._org_id = org_id
78
78
 
79
79
  def to_dict(self) -> dict:
80
80
  """Returns the model properties as a dict"""
@@ -97,7 +97,7 @@ class V1ECRRegistryConfigInput(object):
97
97
  ))
98
98
  else:
99
99
  result[attr] = value
100
- if issubclass(V1ECRRegistryConfigInput, dict):
100
+ if issubclass(ContainerRegistryServiceRefreshContainerRegistryCredentialsBody, dict):
101
101
  for key, value in self.items():
102
102
  result[key] = value
103
103
 
@@ -111,13 +111,13 @@ class V1ECRRegistryConfigInput(object):
111
111
  """For `print` and `pprint`"""
112
112
  return self.to_str()
113
113
 
114
- def __eq__(self, other: 'V1ECRRegistryConfigInput') -> bool:
114
+ def __eq__(self, other: 'ContainerRegistryServiceRefreshContainerRegistryCredentialsBody') -> bool:
115
115
  """Returns true if both objects are equal"""
116
- if not isinstance(other, V1ECRRegistryConfigInput):
116
+ if not isinstance(other, ContainerRegistryServiceRefreshContainerRegistryCredentialsBody):
117
117
  return False
118
118
 
119
119
  return self.__dict__ == other.__dict__
120
120
 
121
- def __ne__(self, other: 'V1ECRRegistryConfigInput') -> bool:
121
+ def __ne__(self, other: 'ContainerRegistryServiceRefreshContainerRegistryCredentialsBody') -> bool:
122
122
  """Returns true if both objects are not equal"""
123
123
  return not self == other
@@ -0,0 +1,175 @@
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 JobsServiceDuplicateDeploymentBody(object):
32
+ """NOTE: This class is auto generated by the swagger code generator program.
33
+
34
+ Do not edit the class manually.
35
+ """
36
+ """
37
+ Attributes:
38
+ swagger_types (dict): The key is attribute name
39
+ and the value is attribute type.
40
+ attribute_map (dict): The key is attribute name
41
+ and the value is json key in definition.
42
+ """
43
+ swagger_types = {
44
+ 'cluster_id': 'str',
45
+ 'name': 'str',
46
+ 'recipients': 'V1DeploymentAlertingRecipients'
47
+ }
48
+
49
+ attribute_map = {
50
+ 'cluster_id': 'clusterId',
51
+ 'name': 'name',
52
+ 'recipients': 'recipients'
53
+ }
54
+
55
+ def __init__(self, cluster_id: 'str' =None, name: 'str' =None, recipients: 'V1DeploymentAlertingRecipients' =None): # noqa: E501
56
+ """JobsServiceDuplicateDeploymentBody - a model defined in Swagger""" # noqa: E501
57
+ self._cluster_id = None
58
+ self._name = None
59
+ self._recipients = None
60
+ self.discriminator = None
61
+ if cluster_id is not None:
62
+ self.cluster_id = cluster_id
63
+ if name is not None:
64
+ self.name = name
65
+ if recipients is not None:
66
+ self.recipients = recipients
67
+
68
+ @property
69
+ def cluster_id(self) -> 'str':
70
+ """Gets the cluster_id of this JobsServiceDuplicateDeploymentBody. # noqa: E501
71
+
72
+
73
+ :return: The cluster_id of this JobsServiceDuplicateDeploymentBody. # noqa: E501
74
+ :rtype: str
75
+ """
76
+ return self._cluster_id
77
+
78
+ @cluster_id.setter
79
+ def cluster_id(self, cluster_id: 'str'):
80
+ """Sets the cluster_id of this JobsServiceDuplicateDeploymentBody.
81
+
82
+
83
+ :param cluster_id: The cluster_id of this JobsServiceDuplicateDeploymentBody. # noqa: E501
84
+ :type: str
85
+ """
86
+
87
+ self._cluster_id = cluster_id
88
+
89
+ @property
90
+ def name(self) -> 'str':
91
+ """Gets the name of this JobsServiceDuplicateDeploymentBody. # noqa: E501
92
+
93
+
94
+ :return: The name of this JobsServiceDuplicateDeploymentBody. # noqa: E501
95
+ :rtype: str
96
+ """
97
+ return self._name
98
+
99
+ @name.setter
100
+ def name(self, name: 'str'):
101
+ """Sets the name of this JobsServiceDuplicateDeploymentBody.
102
+
103
+
104
+ :param name: The name of this JobsServiceDuplicateDeploymentBody. # noqa: E501
105
+ :type: str
106
+ """
107
+
108
+ self._name = name
109
+
110
+ @property
111
+ def recipients(self) -> 'V1DeploymentAlertingRecipients':
112
+ """Gets the recipients of this JobsServiceDuplicateDeploymentBody. # noqa: E501
113
+
114
+
115
+ :return: The recipients of this JobsServiceDuplicateDeploymentBody. # noqa: E501
116
+ :rtype: V1DeploymentAlertingRecipients
117
+ """
118
+ return self._recipients
119
+
120
+ @recipients.setter
121
+ def recipients(self, recipients: 'V1DeploymentAlertingRecipients'):
122
+ """Sets the recipients of this JobsServiceDuplicateDeploymentBody.
123
+
124
+
125
+ :param recipients: The recipients of this JobsServiceDuplicateDeploymentBody. # noqa: E501
126
+ :type: V1DeploymentAlertingRecipients
127
+ """
128
+
129
+ self._recipients = recipients
130
+
131
+ def to_dict(self) -> dict:
132
+ """Returns the model properties as a dict"""
133
+ result = {}
134
+
135
+ for attr, _ in six.iteritems(self.swagger_types):
136
+ value = getattr(self, attr)
137
+ if isinstance(value, list):
138
+ result[attr] = list(map(
139
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
140
+ value
141
+ ))
142
+ elif hasattr(value, "to_dict"):
143
+ result[attr] = value.to_dict()
144
+ elif isinstance(value, dict):
145
+ result[attr] = dict(map(
146
+ lambda item: (item[0], item[1].to_dict())
147
+ if hasattr(item[1], "to_dict") else item,
148
+ value.items()
149
+ ))
150
+ else:
151
+ result[attr] = value
152
+ if issubclass(JobsServiceDuplicateDeploymentBody, dict):
153
+ for key, value in self.items():
154
+ result[key] = value
155
+
156
+ return result
157
+
158
+ def to_str(self) -> str:
159
+ """Returns the string representation of the model"""
160
+ return pprint.pformat(self.to_dict())
161
+
162
+ def __repr__(self) -> str:
163
+ """For `print` and `pprint`"""
164
+ return self.to_str()
165
+
166
+ def __eq__(self, other: 'JobsServiceDuplicateDeploymentBody') -> bool:
167
+ """Returns true if both objects are equal"""
168
+ if not isinstance(other, JobsServiceDuplicateDeploymentBody):
169
+ return False
170
+
171
+ return self.__dict__ == other.__dict__
172
+
173
+ def __ne__(self, other: 'JobsServiceDuplicateDeploymentBody') -> bool:
174
+ """Returns true if both objects are not equal"""
175
+ return not self == other
@@ -0,0 +1,175 @@
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 OrganizationsServiceUpdateOrgRoleBody(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
+ 'description': 'str',
45
+ 'name': 'str',
46
+ 'rules': 'list[V1Rule]'
47
+ }
48
+
49
+ attribute_map = {
50
+ 'description': 'description',
51
+ 'name': 'name',
52
+ 'rules': 'rules'
53
+ }
54
+
55
+ def __init__(self, description: 'str' =None, name: 'str' =None, rules: 'list[V1Rule]' =None): # noqa: E501
56
+ """OrganizationsServiceUpdateOrgRoleBody - a model defined in Swagger""" # noqa: E501
57
+ self._description = None
58
+ self._name = None
59
+ self._rules = None
60
+ self.discriminator = None
61
+ if description is not None:
62
+ self.description = description
63
+ if name is not None:
64
+ self.name = name
65
+ if rules is not None:
66
+ self.rules = rules
67
+
68
+ @property
69
+ def description(self) -> 'str':
70
+ """Gets the description of this OrganizationsServiceUpdateOrgRoleBody. # noqa: E501
71
+
72
+
73
+ :return: The description of this OrganizationsServiceUpdateOrgRoleBody. # noqa: E501
74
+ :rtype: str
75
+ """
76
+ return self._description
77
+
78
+ @description.setter
79
+ def description(self, description: 'str'):
80
+ """Sets the description of this OrganizationsServiceUpdateOrgRoleBody.
81
+
82
+
83
+ :param description: The description of this OrganizationsServiceUpdateOrgRoleBody. # noqa: E501
84
+ :type: str
85
+ """
86
+
87
+ self._description = description
88
+
89
+ @property
90
+ def name(self) -> 'str':
91
+ """Gets the name of this OrganizationsServiceUpdateOrgRoleBody. # noqa: E501
92
+
93
+
94
+ :return: The name of this OrganizationsServiceUpdateOrgRoleBody. # noqa: E501
95
+ :rtype: str
96
+ """
97
+ return self._name
98
+
99
+ @name.setter
100
+ def name(self, name: 'str'):
101
+ """Sets the name of this OrganizationsServiceUpdateOrgRoleBody.
102
+
103
+
104
+ :param name: The name of this OrganizationsServiceUpdateOrgRoleBody. # noqa: E501
105
+ :type: str
106
+ """
107
+
108
+ self._name = name
109
+
110
+ @property
111
+ def rules(self) -> 'list[V1Rule]':
112
+ """Gets the rules of this OrganizationsServiceUpdateOrgRoleBody. # noqa: E501
113
+
114
+
115
+ :return: The rules of this OrganizationsServiceUpdateOrgRoleBody. # noqa: E501
116
+ :rtype: list[V1Rule]
117
+ """
118
+ return self._rules
119
+
120
+ @rules.setter
121
+ def rules(self, rules: 'list[V1Rule]'):
122
+ """Sets the rules of this OrganizationsServiceUpdateOrgRoleBody.
123
+
124
+
125
+ :param rules: The rules of this OrganizationsServiceUpdateOrgRoleBody. # noqa: E501
126
+ :type: list[V1Rule]
127
+ """
128
+
129
+ self._rules = rules
130
+
131
+ def to_dict(self) -> dict:
132
+ """Returns the model properties as a dict"""
133
+ result = {}
134
+
135
+ for attr, _ in six.iteritems(self.swagger_types):
136
+ value = getattr(self, attr)
137
+ if isinstance(value, list):
138
+ result[attr] = list(map(
139
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
140
+ value
141
+ ))
142
+ elif hasattr(value, "to_dict"):
143
+ result[attr] = value.to_dict()
144
+ elif isinstance(value, dict):
145
+ result[attr] = dict(map(
146
+ lambda item: (item[0], item[1].to_dict())
147
+ if hasattr(item[1], "to_dict") else item,
148
+ value.items()
149
+ ))
150
+ else:
151
+ result[attr] = value
152
+ if issubclass(OrganizationsServiceUpdateOrgRoleBody, dict):
153
+ for key, value in self.items():
154
+ result[key] = value
155
+
156
+ return result
157
+
158
+ def to_str(self) -> str:
159
+ """Returns the string representation of the model"""
160
+ return pprint.pformat(self.to_dict())
161
+
162
+ def __repr__(self) -> str:
163
+ """For `print` and `pprint`"""
164
+ return self.to_str()
165
+
166
+ def __eq__(self, other: 'OrganizationsServiceUpdateOrgRoleBody') -> bool:
167
+ """Returns true if both objects are equal"""
168
+ if not isinstance(other, OrganizationsServiceUpdateOrgRoleBody):
169
+ return False
170
+
171
+ return self.__dict__ == other.__dict__
172
+
173
+ def __ne__(self, other: 'OrganizationsServiceUpdateOrgRoleBody') -> bool:
174
+ """Returns true if both objects are not equal"""
175
+ return not self == other
@@ -53,6 +53,7 @@ class V1CloudProvider(object):
53
53
  MACHINE = "MACHINE"
54
54
  LIGHTNING_ELASTIC_CLUSTER_AGGREGATE = "LIGHTNING_ELASTIC_CLUSTER_AGGREGATE"
55
55
  CUDO = "CUDO"
56
+ MITHRIL = "MITHRIL"
56
57
  """
57
58
  Attributes:
58
59
  swagger_types (dict): The key is attribute name
@@ -54,6 +54,7 @@ class V1ClusterCapacityReservation(object):
54
54
  'match_pattern': 'str',
55
55
  'node_group_name': 'str',
56
56
  'num_instances': 'str',
57
+ 'org_id': 'str',
57
58
  'project_id': 'str',
58
59
  'region': 'str',
59
60
  'start_time': 'datetime',
@@ -75,6 +76,7 @@ class V1ClusterCapacityReservation(object):
75
76
  'match_pattern': 'matchPattern',
76
77
  'node_group_name': 'nodeGroupName',
77
78
  'num_instances': 'numInstances',
79
+ 'org_id': 'orgId',
78
80
  'project_id': 'projectId',
79
81
  'region': 'region',
80
82
  'start_time': 'startTime',
@@ -82,7 +84,7 @@ class V1ClusterCapacityReservation(object):
82
84
  'zone': 'zone'
83
85
  }
84
86
 
85
- 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, used_by: 'list[V1CapacityReservationUsedBy]' =None, zone: 'str' =None): # noqa: E501
87
+ 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, org_id: 'str' =None, project_id: 'str' =None, region: 'str' =None, start_time: 'datetime' =None, used_by: 'list[V1CapacityReservationUsedBy]' =None, zone: 'str' =None): # noqa: E501
86
88
  """V1ClusterCapacityReservation - a model defined in Swagger""" # noqa: E501
87
89
  self._aggregate_availability = None
88
90
  self._capacity_reservation_type = None
@@ -97,6 +99,7 @@ class V1ClusterCapacityReservation(object):
97
99
  self._match_pattern = None
98
100
  self._node_group_name = None
99
101
  self._num_instances = None
102
+ self._org_id = None
100
103
  self._project_id = None
101
104
  self._region = None
102
105
  self._start_time = None
@@ -129,6 +132,8 @@ class V1ClusterCapacityReservation(object):
129
132
  self.node_group_name = node_group_name
130
133
  if num_instances is not None:
131
134
  self.num_instances = num_instances
135
+ if org_id is not None:
136
+ self.org_id = org_id
132
137
  if project_id is not None:
133
138
  self.project_id = project_id
134
139
  if region is not None:
@@ -413,6 +418,27 @@ class V1ClusterCapacityReservation(object):
413
418
 
414
419
  self._num_instances = num_instances
415
420
 
421
+ @property
422
+ def org_id(self) -> 'str':
423
+ """Gets the org_id of this V1ClusterCapacityReservation. # noqa: E501
424
+
425
+
426
+ :return: The org_id of this V1ClusterCapacityReservation. # noqa: E501
427
+ :rtype: str
428
+ """
429
+ return self._org_id
430
+
431
+ @org_id.setter
432
+ def org_id(self, org_id: 'str'):
433
+ """Sets the org_id of this V1ClusterCapacityReservation.
434
+
435
+
436
+ :param org_id: The org_id of this V1ClusterCapacityReservation. # noqa: E501
437
+ :type: str
438
+ """
439
+
440
+ self._org_id = org_id
441
+
416
442
  @property
417
443
  def project_id(self) -> 'str':
418
444
  """Gets the project_id of this V1ClusterCapacityReservation. # noqa: E501
@@ -63,6 +63,7 @@ class V1ClusterSpec(object):
63
63
  'lock_overprovisioning': 'bool',
64
64
  'locked_zones': 'list[str]',
65
65
  'machine_v1': 'V1MachineDirectV1',
66
+ 'mithril_v1': 'V1MithrilDirectV1',
66
67
  'monitor_deletion_disabled': 'bool',
67
68
  'nebius_v1': 'V1NebiusDirectV1',
68
69
  'overprovisioning': 'list[V1InstanceOverprovisioningSpec]',
@@ -106,6 +107,7 @@ class V1ClusterSpec(object):
106
107
  'lock_overprovisioning': 'lockOverprovisioning',
107
108
  'locked_zones': 'lockedZones',
108
109
  'machine_v1': 'machineV1',
110
+ 'mithril_v1': 'mithrilV1',
109
111
  'monitor_deletion_disabled': 'monitorDeletionDisabled',
110
112
  'nebius_v1': 'nebiusV1',
111
113
  'overprovisioning': 'overprovisioning',
@@ -126,7 +128,7 @@ class V1ClusterSpec(object):
126
128
  'vultr_v1': 'vultrV1'
127
129
  }
128
130
 
129
- 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, compute_cluster_request: 'V1ComputeClusterRequest' =None, cudo_v1: 'V1CudoDirectV1' =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, kubernetes_v1: 'V1KubernetesDirectV1' =None, lambda_labs_v1: 'V1LambdaLabsDirectV1' =None, lightning_elastic_cluster_v1: 'V1LightningElasticClusterV1' =None, lock_overprovisioning: 'bool' =None, locked_zones: 'list[str]' =None, machine_v1: 'V1MachineDirectV1' =None, monitor_deletion_disabled: 'bool' =None, nebius_v1: 'V1NebiusDirectV1' =None, overprovisioning: 'list[V1InstanceOverprovisioningSpec]' =None, parent_cluster_id: 'str' =None, parent_cluster_type: 'str' =None, partitioning_enabled: 'bool' =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, unavailability_spikes_detection_enabled: 'bool' =None, user_id: 'str' =None, vibe_coding_enabled: 'bool' =None, voltage_park_v1: 'V1VoltageParkDirectV1' =None, vultr_v1: 'V1VultrDirectV1' =None): # noqa: E501
131
+ 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, compute_cluster_request: 'V1ComputeClusterRequest' =None, cudo_v1: 'V1CudoDirectV1' =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, kubernetes_v1: 'V1KubernetesDirectV1' =None, lambda_labs_v1: 'V1LambdaLabsDirectV1' =None, lightning_elastic_cluster_v1: 'V1LightningElasticClusterV1' =None, lock_overprovisioning: 'bool' =None, locked_zones: 'list[str]' =None, machine_v1: 'V1MachineDirectV1' =None, mithril_v1: 'V1MithrilDirectV1' =None, monitor_deletion_disabled: 'bool' =None, nebius_v1: 'V1NebiusDirectV1' =None, overprovisioning: 'list[V1InstanceOverprovisioningSpec]' =None, parent_cluster_id: 'str' =None, parent_cluster_type: 'str' =None, partitioning_enabled: 'bool' =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, unavailability_spikes_detection_enabled: 'bool' =None, user_id: 'str' =None, vibe_coding_enabled: 'bool' =None, voltage_park_v1: 'V1VoltageParkDirectV1' =None, vultr_v1: 'V1VultrDirectV1' =None): # noqa: E501
130
132
  """V1ClusterSpec - a model defined in Swagger""" # noqa: E501
131
133
  self._auth_token = None
132
134
  self._available_accelerators = None
@@ -150,6 +152,7 @@ class V1ClusterSpec(object):
150
152
  self._lock_overprovisioning = None
151
153
  self._locked_zones = None
152
154
  self._machine_v1 = None
155
+ self._mithril_v1 = None
153
156
  self._monitor_deletion_disabled = None
154
157
  self._nebius_v1 = None
155
158
  self._overprovisioning = None
@@ -213,6 +216,8 @@ class V1ClusterSpec(object):
213
216
  self.locked_zones = locked_zones
214
217
  if machine_v1 is not None:
215
218
  self.machine_v1 = machine_v1
219
+ if mithril_v1 is not None:
220
+ self.mithril_v1 = mithril_v1
216
221
  if monitor_deletion_disabled is not None:
217
222
  self.monitor_deletion_disabled = monitor_deletion_disabled
218
223
  if nebius_v1 is not None:
@@ -714,6 +719,27 @@ class V1ClusterSpec(object):
714
719
 
715
720
  self._machine_v1 = machine_v1
716
721
 
722
+ @property
723
+ def mithril_v1(self) -> 'V1MithrilDirectV1':
724
+ """Gets the mithril_v1 of this V1ClusterSpec. # noqa: E501
725
+
726
+
727
+ :return: The mithril_v1 of this V1ClusterSpec. # noqa: E501
728
+ :rtype: V1MithrilDirectV1
729
+ """
730
+ return self._mithril_v1
731
+
732
+ @mithril_v1.setter
733
+ def mithril_v1(self, mithril_v1: 'V1MithrilDirectV1'):
734
+ """Sets the mithril_v1 of this V1ClusterSpec.
735
+
736
+
737
+ :param mithril_v1: The mithril_v1 of this V1ClusterSpec. # noqa: E501
738
+ :type: V1MithrilDirectV1
739
+ """
740
+
741
+ self._mithril_v1 = mithril_v1
742
+
717
743
  @property
718
744
  def monitor_deletion_disabled(self) -> 'bool':
719
745
  """Gets the monitor_deletion_disabled of this V1ClusterSpec. # noqa: E501