lightning-sdk 2025.12.17__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 (130) hide show
  1. lightning_sdk/__version__.py +1 -1
  2. lightning_sdk/api/k8s_api.py +75 -29
  3. lightning_sdk/api/studio_api.py +192 -37
  4. lightning_sdk/api/teamspace_api.py +180 -54
  5. lightning_sdk/api/utils.py +8 -0
  6. lightning_sdk/cli/cp/__init__.py +67 -0
  7. lightning_sdk/cli/cp/teamspace_uploads.py +93 -0
  8. lightning_sdk/cli/entrypoint.py +2 -0
  9. lightning_sdk/cli/groups.py +22 -0
  10. lightning_sdk/cli/legacy/clusters_menu.py +2 -2
  11. lightning_sdk/cli/legacy/deploy/_auth.py +7 -6
  12. lightning_sdk/cli/legacy/download.py +29 -98
  13. lightning_sdk/cli/legacy/run.py +13 -2
  14. lightning_sdk/cli/legacy/upload.py +24 -31
  15. lightning_sdk/cli/studio/__init__.py +4 -0
  16. lightning_sdk/cli/studio/cp.py +24 -65
  17. lightning_sdk/cli/studio/ls.py +57 -0
  18. lightning_sdk/cli/studio/rm.py +71 -0
  19. lightning_sdk/cli/utils/filesystem.py +103 -0
  20. lightning_sdk/cli/utils/logging.py +2 -1
  21. lightning_sdk/cli/utils/teamspace_selection.py +5 -0
  22. lightning_sdk/exceptions.py +31 -0
  23. lightning_sdk/job/base.py +1 -1
  24. lightning_sdk/k8s_cluster.py +9 -10
  25. lightning_sdk/lightning_cloud/__version__.py +1 -1
  26. lightning_sdk/lightning_cloud/openapi/__init__.py +43 -23
  27. lightning_sdk/lightning_cloud/openapi/api/__init__.py +2 -1
  28. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +118 -1
  29. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +378 -536
  30. lightning_sdk/lightning_cloud/openapi/api/container_registry_service_api.py +456 -0
  31. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +5 -1
  32. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +11 -11
  33. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +113 -0
  34. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +246 -19
  35. lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py +116 -11
  36. lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +588 -2
  37. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +9 -1
  38. lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +113 -0
  39. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +5 -1
  40. lightning_sdk/lightning_cloud/openapi/api/{kubernetes_virtual_machine_service_api.py → virtual_machine_service_api.py} +82 -82
  41. lightning_sdk/lightning_cloud/openapi/models/__init__.py +41 -22
  42. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_cluster_capacity_reservation_body.py +53 -1
  43. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_machine_body.py +53 -1
  44. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_org_cluster_capacity_reservation_body.py +409 -0
  45. lightning_sdk/lightning_cloud/openapi/models/{v1_add_container_registry_response.py → cluster_service_report_machine_system_metrics_body.py} +23 -23
  46. lightning_sdk/lightning_cloud/openapi/models/container_registry_config_ecr.py +149 -0
  47. lightning_sdk/lightning_cloud/openapi/models/{v1_container_registry_status.py → container_registry_provider.py} +14 -10
  48. lightning_sdk/lightning_cloud/openapi/models/container_registry_service_create_container_registry_body.py +201 -0
  49. lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_config_input.py → container_registry_service_refresh_container_registry_credentials_body.py} +21 -21
  50. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +27 -1
  51. lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_config.py → jobs_service_duplicate_deployment_body.py} +51 -51
  52. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_create_lit_logger_media_body.py +305 -0
  53. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_lit_logger_media_body.py +149 -0
  54. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_metrics_stream_body.py +53 -1
  55. lightning_sdk/lightning_cloud/openapi/models/organizations_service_update_org_role_body.py +175 -0
  56. lightning_sdk/lightning_cloud/openapi/models/v1_capacity_reservation_used_by.py +227 -0
  57. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +2 -1
  58. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_type.py +1 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  60. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +53 -1
  61. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +79 -27
  62. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +0 -1
  63. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry.py +63 -89
  64. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_add_container_registry_body.py → v1_container_registry_config.py} +16 -16
  65. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_scopes.py +149 -0
  66. lightning_sdk/lightning_cloud/openapi/models/{v1_delete_kubernetes_virtual_machine_response.py → v1_create_container_registry_response.py} +6 -6
  67. lightning_sdk/lightning_cloud/openapi/models/v1_create_lit_logger_media_response.py +149 -0
  68. lightning_sdk/lightning_cloud/openapi/models/v1_create_org_cluster_capacity_reservation_response.py +201 -0
  69. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_request.py +29 -3
  70. lightning_sdk/lightning_cloud/openapi/models/v1_cudo_direct_v1.py +175 -0
  71. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_refresh_container_registry_credentials_body.py → v1_delete_lit_logger_media_response.py} +6 -6
  72. lightning_sdk/lightning_cloud/openapi/models/{kubernetes_virtual_machine_service_update_kubernetes_virtual_machine_body.py → v1_delete_org_cluster_capacity_reservation_response.py} +6 -6
  73. lightning_sdk/lightning_cloud/openapi/models/v1_delete_virtual_machine_response.py +97 -0
  74. lightning_sdk/lightning_cloud/openapi/models/v1_describe_org_cluster_capacity_reservation_response.py +201 -0
  75. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -27
  76. lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +27 -1
  77. lightning_sdk/lightning_cloud/openapi/models/v1_generic_job_spec.py +79 -1
  78. lightning_sdk/lightning_cloud/openapi/models/{v1_validate_container_registry_response.py → v1_get_kubernetes_pod_logs_response.py} +37 -37
  79. lightning_sdk/lightning_cloud/openapi/models/{v1_get_machine_response.py → v1_get_kubernetes_pod_response.py} +23 -23
  80. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +27 -1
  81. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  82. lightning_sdk/lightning_cloud/openapi/models/v1_joinable_organization.py +27 -1
  83. lightning_sdk/lightning_cloud/openapi/models/{v1_container_registry_integration.py → v1_k8s_incident_setting.py} +49 -23
  84. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_type.py +108 -0
  85. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_settings_v1.py +53 -1
  86. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +53 -27
  87. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod.py +27 -1
  88. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod_logs_page.py +227 -0
  89. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_config.py +53 -1
  90. lightning_sdk/lightning_cloud/openapi/models/v1_list_container_registries_response.py +6 -6
  91. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_response.py +43 -17
  92. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_sort_order.py +104 -0
  93. lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_logger_media_response.py +149 -0
  94. lightning_sdk/lightning_cloud/openapi/models/v1_list_models_response.py +55 -3
  95. lightning_sdk/lightning_cloud/openapi/models/{v1_list_kubernetes_virtual_machines_response.py → v1_list_virtual_machines_response.py} +16 -16
  96. lightning_sdk/lightning_cloud/openapi/models/v1_lit_logger_media.py +513 -0
  97. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +27 -53
  98. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +107 -3
  99. lightning_sdk/lightning_cloud/openapi/models/v1_media_type.py +104 -0
  100. lightning_sdk/lightning_cloud/openapi/models/{v1_ai_pod_v1.py → v1_mithril_direct_v1.py} +51 -51
  101. lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py +29 -3
  102. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +27 -1
  103. lightning_sdk/lightning_cloud/openapi/models/v1_refresh_container_registry_credentials_response.py +1 -27
  104. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_validate_container_registry_body.py → v1_report_cloud_space_instance_idle_state_response.py} +6 -6
  105. lightning_sdk/lightning_cloud/openapi/models/v1_report_machine_system_metrics_response.py +97 -0
  106. lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_details.py → v1_tenant_credentials.py} +53 -53
  107. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +183 -157
  108. lightning_sdk/lightning_cloud/openapi/models/{v1_kubernetes_virtual_machine.py → v1_virtual_machine.py} +94 -68
  109. lightning_sdk/lightning_cloud/openapi/models/{v1_kubevirt_vm_configuration.py → v1_vm_configuration.py} +20 -20
  110. lightning_sdk/lightning_cloud/openapi/models/{v1_kubevirt_provider_configuration.py → v1_vm_provider_configuration.py} +32 -32
  111. lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_create_virtual_machine_body.py +565 -0
  112. lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_update_virtual_machine_body.py +97 -0
  113. lightning_sdk/lightning_cloud/openapi/rest.py +2 -2
  114. lightning_sdk/lightning_cloud/rest_client.py +0 -2
  115. lightning_sdk/machine.py +3 -3
  116. lightning_sdk/studio.py +14 -4
  117. lightning_sdk/teamspace.py +28 -7
  118. lightning_sdk/utils/logging.py +2 -1
  119. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/METADATA +1 -5
  120. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/RECORD +125 -102
  121. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/WHEEL +1 -1
  122. lightning_sdk/lightning_cloud/cli/__main__.py +0 -29
  123. lightning_sdk/lightning_cloud/openapi/models/kubernetes_virtual_machine_service_create_kubernetes_virtual_machine_body.py +0 -513
  124. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_info.py +0 -281
  125. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_vm_resources.py +0 -201
  126. lightning_sdk/lightning_cloud/source_code/logs_socket_api.py +0 -103
  127. /lightning_sdk/lightning_cloud/openapi/models/{v1_list_filesystem_mmts_response.py → v1_list_filesystem_mm_ts_response.py} +0 -0
  128. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/LICENSE +0 -0
  129. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/entry_points.txt +0 -0
  130. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/top_level.txt +0 -0
@@ -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
@@ -0,0 +1,227 @@
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 V1CapacityReservationUsedBy(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
+ 'cloudspace_id': 'str',
45
+ 'job_id': 'str',
46
+ 'project_id': 'str',
47
+ 'server_id': 'str',
48
+ 'user_id': 'str'
49
+ }
50
+
51
+ attribute_map = {
52
+ 'cloudspace_id': 'cloudspaceId',
53
+ 'job_id': 'jobId',
54
+ 'project_id': 'projectId',
55
+ 'server_id': 'serverId',
56
+ 'user_id': 'userId'
57
+ }
58
+
59
+ def __init__(self, cloudspace_id: 'str' =None, job_id: 'str' =None, project_id: 'str' =None, server_id: 'str' =None, user_id: 'str' =None): # noqa: E501
60
+ """V1CapacityReservationUsedBy - a model defined in Swagger""" # noqa: E501
61
+ self._cloudspace_id = None
62
+ self._job_id = None
63
+ self._project_id = None
64
+ self._server_id = None
65
+ self._user_id = None
66
+ self.discriminator = None
67
+ if cloudspace_id is not None:
68
+ self.cloudspace_id = cloudspace_id
69
+ if job_id is not None:
70
+ self.job_id = job_id
71
+ if project_id is not None:
72
+ self.project_id = project_id
73
+ if server_id is not None:
74
+ self.server_id = server_id
75
+ if user_id is not None:
76
+ self.user_id = user_id
77
+
78
+ @property
79
+ def cloudspace_id(self) -> 'str':
80
+ """Gets the cloudspace_id of this V1CapacityReservationUsedBy. # noqa: E501
81
+
82
+
83
+ :return: The cloudspace_id of this V1CapacityReservationUsedBy. # noqa: E501
84
+ :rtype: str
85
+ """
86
+ return self._cloudspace_id
87
+
88
+ @cloudspace_id.setter
89
+ def cloudspace_id(self, cloudspace_id: 'str'):
90
+ """Sets the cloudspace_id of this V1CapacityReservationUsedBy.
91
+
92
+
93
+ :param cloudspace_id: The cloudspace_id of this V1CapacityReservationUsedBy. # noqa: E501
94
+ :type: str
95
+ """
96
+
97
+ self._cloudspace_id = cloudspace_id
98
+
99
+ @property
100
+ def job_id(self) -> 'str':
101
+ """Gets the job_id of this V1CapacityReservationUsedBy. # noqa: E501
102
+
103
+
104
+ :return: The job_id of this V1CapacityReservationUsedBy. # noqa: E501
105
+ :rtype: str
106
+ """
107
+ return self._job_id
108
+
109
+ @job_id.setter
110
+ def job_id(self, job_id: 'str'):
111
+ """Sets the job_id of this V1CapacityReservationUsedBy.
112
+
113
+
114
+ :param job_id: The job_id of this V1CapacityReservationUsedBy. # noqa: E501
115
+ :type: str
116
+ """
117
+
118
+ self._job_id = job_id
119
+
120
+ @property
121
+ def project_id(self) -> 'str':
122
+ """Gets the project_id of this V1CapacityReservationUsedBy. # noqa: E501
123
+
124
+
125
+ :return: The project_id of this V1CapacityReservationUsedBy. # noqa: E501
126
+ :rtype: str
127
+ """
128
+ return self._project_id
129
+
130
+ @project_id.setter
131
+ def project_id(self, project_id: 'str'):
132
+ """Sets the project_id of this V1CapacityReservationUsedBy.
133
+
134
+
135
+ :param project_id: The project_id of this V1CapacityReservationUsedBy. # noqa: E501
136
+ :type: str
137
+ """
138
+
139
+ self._project_id = project_id
140
+
141
+ @property
142
+ def server_id(self) -> 'str':
143
+ """Gets the server_id of this V1CapacityReservationUsedBy. # noqa: E501
144
+
145
+
146
+ :return: The server_id of this V1CapacityReservationUsedBy. # noqa: E501
147
+ :rtype: str
148
+ """
149
+ return self._server_id
150
+
151
+ @server_id.setter
152
+ def server_id(self, server_id: 'str'):
153
+ """Sets the server_id of this V1CapacityReservationUsedBy.
154
+
155
+
156
+ :param server_id: The server_id of this V1CapacityReservationUsedBy. # noqa: E501
157
+ :type: str
158
+ """
159
+
160
+ self._server_id = server_id
161
+
162
+ @property
163
+ def user_id(self) -> 'str':
164
+ """Gets the user_id of this V1CapacityReservationUsedBy. # noqa: E501
165
+
166
+
167
+ :return: The user_id of this V1CapacityReservationUsedBy. # noqa: E501
168
+ :rtype: str
169
+ """
170
+ return self._user_id
171
+
172
+ @user_id.setter
173
+ def user_id(self, user_id: 'str'):
174
+ """Sets the user_id of this V1CapacityReservationUsedBy.
175
+
176
+
177
+ :param user_id: The user_id of this V1CapacityReservationUsedBy. # noqa: E501
178
+ :type: str
179
+ """
180
+
181
+ self._user_id = user_id
182
+
183
+ def to_dict(self) -> dict:
184
+ """Returns the model properties as a dict"""
185
+ result = {}
186
+
187
+ for attr, _ in six.iteritems(self.swagger_types):
188
+ value = getattr(self, attr)
189
+ if isinstance(value, list):
190
+ result[attr] = list(map(
191
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
192
+ value
193
+ ))
194
+ elif hasattr(value, "to_dict"):
195
+ result[attr] = value.to_dict()
196
+ elif isinstance(value, dict):
197
+ result[attr] = dict(map(
198
+ lambda item: (item[0], item[1].to_dict())
199
+ if hasattr(item[1], "to_dict") else item,
200
+ value.items()
201
+ ))
202
+ else:
203
+ result[attr] = value
204
+ if issubclass(V1CapacityReservationUsedBy, dict):
205
+ for key, value in self.items():
206
+ result[key] = value
207
+
208
+ return result
209
+
210
+ def to_str(self) -> str:
211
+ """Returns the string representation of the model"""
212
+ return pprint.pformat(self.to_dict())
213
+
214
+ def __repr__(self) -> str:
215
+ """For `print` and `pprint`"""
216
+ return self.to_str()
217
+
218
+ def __eq__(self, other: 'V1CapacityReservationUsedBy') -> bool:
219
+ """Returns true if both objects are equal"""
220
+ if not isinstance(other, V1CapacityReservationUsedBy):
221
+ return False
222
+
223
+ return self.__dict__ == other.__dict__
224
+
225
+ def __ne__(self, other: 'V1CapacityReservationUsedBy') -> bool:
226
+ """Returns true if both objects are not equal"""
227
+ return not self == other
@@ -50,9 +50,10 @@ class V1CloudProvider(object):
50
50
  LIGHTNING = "LIGHTNING"
51
51
  LIGHTNING_AGGREGATE = "LIGHTNING_AGGREGATE"
52
52
  KUBERNETES = "KUBERNETES"
53
- AI_POD = "AI_POD"
54
53
  MACHINE = "MACHINE"
55
54
  LIGHTNING_ELASTIC_CLUSTER_AGGREGATE = "LIGHTNING_ELASTIC_CLUSTER_AGGREGATE"
55
+ CUDO = "CUDO"
56
+ MITHRIL = "MITHRIL"
56
57
  """
57
58
  Attributes:
58
59
  swagger_types (dict): The key is attribute name
@@ -41,6 +41,7 @@ class V1CloudSpaceEnvironmentType(object):
41
41
  DEFAULT = "CLOUD_SPACE_ENVIRONMENT_TYPE_DEFAULT"
42
42
  BLANK = "CLOUD_SPACE_ENVIRONMENT_TYPE_BLANK"
43
43
  PYTHON_EMPTY = "CLOUD_SPACE_ENVIRONMENT_TYPE_PYTHON_EMPTY"
44
+ COMFYUI = "CLOUD_SPACE_ENVIRONMENT_TYPE_COMFYUI"
44
45
  """
45
46
  Attributes:
46
47
  swagger_types (dict): The key is attribute name
@@ -73,6 +73,7 @@ class V1ClusterAccelerator(object):
73
73
  'max_available_quota': 'str',
74
74
  'non_spot': 'bool',
75
75
  'out_of_capacity': 'bool',
76
+ 'partitionable_parent': 'str',
76
77
  'persistent_disk_supported': 'bool',
77
78
  'provider': 'V1CloudProvider',
78
79
  'quota_checked_at': 'datetime',
@@ -130,6 +131,7 @@ class V1ClusterAccelerator(object):
130
131
  'max_available_quota': 'maxAvailableQuota',
131
132
  'non_spot': 'nonSpot',
132
133
  'out_of_capacity': 'outOfCapacity',
134
+ 'partitionable_parent': 'partitionableParent',
133
135
  'persistent_disk_supported': 'persistentDiskSupported',
134
136
  'provider': 'provider',
135
137
  'quota_checked_at': 'quotaCheckedAt',
@@ -154,7 +156,7 @@ class V1ClusterAccelerator(object):
154
156
  'spot_quota_page_url': 'spotQuotaPageUrl'
155
157
  }
156
158
 
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
159
+ 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, partitionable_parent: 'str' =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
158
160
  """V1ClusterAccelerator - a model defined in Swagger""" # noqa: E501
159
161
  self._accelerator_type = None
160
162
  self._allowed_resources = None
@@ -188,6 +190,7 @@ class V1ClusterAccelerator(object):
188
190
  self._max_available_quota = None
189
191
  self._non_spot = None
190
192
  self._out_of_capacity = None
193
+ self._partitionable_parent = None
191
194
  self._persistent_disk_supported = None
192
195
  self._provider = None
193
196
  self._quota_checked_at = None
@@ -275,6 +278,8 @@ class V1ClusterAccelerator(object):
275
278
  self.non_spot = non_spot
276
279
  if out_of_capacity is not None:
277
280
  self.out_of_capacity = out_of_capacity
281
+ if partitionable_parent is not None:
282
+ self.partitionable_parent = partitionable_parent
278
283
  if persistent_disk_supported is not None:
279
284
  self.persistent_disk_supported = persistent_disk_supported
280
285
  if provider is not None:
@@ -992,6 +997,27 @@ class V1ClusterAccelerator(object):
992
997
 
993
998
  self._out_of_capacity = out_of_capacity
994
999
 
1000
+ @property
1001
+ def partitionable_parent(self) -> 'str':
1002
+ """Gets the partitionable_parent of this V1ClusterAccelerator. # noqa: E501
1003
+
1004
+
1005
+ :return: The partitionable_parent of this V1ClusterAccelerator. # noqa: E501
1006
+ :rtype: str
1007
+ """
1008
+ return self._partitionable_parent
1009
+
1010
+ @partitionable_parent.setter
1011
+ def partitionable_parent(self, partitionable_parent: 'str'):
1012
+ """Sets the partitionable_parent of this V1ClusterAccelerator.
1013
+
1014
+
1015
+ :param partitionable_parent: The partitionable_parent of this V1ClusterAccelerator. # noqa: E501
1016
+ :type: str
1017
+ """
1018
+
1019
+ self._partitionable_parent = partitionable_parent
1020
+
995
1021
  @property
996
1022
  def persistent_disk_supported(self) -> 'bool':
997
1023
  """Gets the persistent_disk_supported of this V1ClusterAccelerator. # noqa: E501
@@ -54,9 +54,11 @@ 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',
61
+ 'used_by': 'list[V1CapacityReservationUsedBy]',
60
62
  'zone': 'str'
61
63
  }
62
64
 
@@ -74,13 +76,15 @@ class V1ClusterCapacityReservation(object):
74
76
  'match_pattern': 'matchPattern',
75
77
  'node_group_name': 'nodeGroupName',
76
78
  'num_instances': 'numInstances',
79
+ 'org_id': 'orgId',
77
80
  'project_id': 'projectId',
78
81
  'region': 'region',
79
82
  'start_time': 'startTime',
83
+ 'used_by': 'usedBy',
80
84
  'zone': 'zone'
81
85
  }
82
86
 
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
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
84
88
  """V1ClusterCapacityReservation - a model defined in Swagger""" # noqa: E501
85
89
  self._aggregate_availability = None
86
90
  self._capacity_reservation_type = None
@@ -95,9 +99,11 @@ class V1ClusterCapacityReservation(object):
95
99
  self._match_pattern = None
96
100
  self._node_group_name = None
97
101
  self._num_instances = None
102
+ self._org_id = None
98
103
  self._project_id = None
99
104
  self._region = None
100
105
  self._start_time = None
106
+ self._used_by = None
101
107
  self._zone = None
102
108
  self.discriminator = None
103
109
  if aggregate_availability is not None:
@@ -126,12 +132,16 @@ class V1ClusterCapacityReservation(object):
126
132
  self.node_group_name = node_group_name
127
133
  if num_instances is not None:
128
134
  self.num_instances = num_instances
135
+ if org_id is not None:
136
+ self.org_id = org_id
129
137
  if project_id is not None:
130
138
  self.project_id = project_id
131
139
  if region is not None:
132
140
  self.region = region
133
141
  if start_time is not None:
134
142
  self.start_time = start_time
143
+ if used_by is not None:
144
+ self.used_by = used_by
135
145
  if zone is not None:
136
146
  self.zone = zone
137
147
 
@@ -408,6 +418,27 @@ class V1ClusterCapacityReservation(object):
408
418
 
409
419
  self._num_instances = num_instances
410
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
+
411
442
  @property
412
443
  def project_id(self) -> 'str':
413
444
  """Gets the project_id of this V1ClusterCapacityReservation. # noqa: E501
@@ -471,6 +502,27 @@ class V1ClusterCapacityReservation(object):
471
502
 
472
503
  self._start_time = start_time
473
504
 
505
+ @property
506
+ def used_by(self) -> 'list[V1CapacityReservationUsedBy]':
507
+ """Gets the used_by of this V1ClusterCapacityReservation. # noqa: E501
508
+
509
+
510
+ :return: The used_by of this V1ClusterCapacityReservation. # noqa: E501
511
+ :rtype: list[V1CapacityReservationUsedBy]
512
+ """
513
+ return self._used_by
514
+
515
+ @used_by.setter
516
+ def used_by(self, used_by: 'list[V1CapacityReservationUsedBy]'):
517
+ """Sets the used_by of this V1ClusterCapacityReservation.
518
+
519
+
520
+ :param used_by: The used_by of this V1ClusterCapacityReservation. # noqa: E501
521
+ :type: list[V1CapacityReservationUsedBy]
522
+ """
523
+
524
+ self._used_by = used_by
525
+
474
526
  @property
475
527
  def zone(self) -> 'str':
476
528
  """Gets the zone of this V1ClusterCapacityReservation. # noqa: E501