lightning-sdk 2025.10.8__py3-none-any.whl → 2025.10.22__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 (96) hide show
  1. lightning_sdk/__init__.py +6 -3
  2. lightning_sdk/api/base_studio_api.py +13 -9
  3. lightning_sdk/api/cloud_account_api.py +0 -2
  4. lightning_sdk/api/license_api.py +26 -59
  5. lightning_sdk/api/studio_api.py +15 -2
  6. lightning_sdk/base_studio.py +30 -17
  7. lightning_sdk/cli/base_studio/list.py +1 -3
  8. lightning_sdk/cli/entrypoint.py +8 -34
  9. lightning_sdk/cli/studio/connect.py +42 -92
  10. lightning_sdk/cli/studio/create.py +23 -1
  11. lightning_sdk/cli/studio/start.py +12 -2
  12. lightning_sdk/cli/utils/get_base_studio.py +24 -0
  13. lightning_sdk/cli/utils/handle_machine_and_gpus_args.py +71 -0
  14. lightning_sdk/cli/utils/logging.py +121 -0
  15. lightning_sdk/cli/utils/ssh_connection.py +1 -1
  16. lightning_sdk/constants.py +1 -0
  17. lightning_sdk/helpers.py +53 -34
  18. lightning_sdk/job/job.py +5 -0
  19. lightning_sdk/job/v1.py +8 -0
  20. lightning_sdk/job/v2.py +8 -0
  21. lightning_sdk/lightning_cloud/login.py +260 -10
  22. lightning_sdk/lightning_cloud/openapi/__init__.py +30 -3
  23. lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
  24. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +19 -19
  25. lightning_sdk/lightning_cloud/openapi/api/auth_service_api.py +97 -0
  26. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +105 -0
  27. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +1463 -240
  28. lightning_sdk/lightning_cloud/openapi/api/product_license_service_api.py +108 -108
  29. lightning_sdk/lightning_cloud/openapi/api/sdk_command_history_service_api.py +141 -0
  30. lightning_sdk/lightning_cloud/openapi/models/__init__.py +29 -3
  31. lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_visibility_body.py +27 -1
  32. lightning_sdk/lightning_cloud/openapi/models/cluster_id_metrics_body.py +53 -1
  33. lightning_sdk/lightning_cloud/openapi/models/create_machine_request_represents_the_request_to_create_a_machine.py +27 -1
  34. lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +27 -1
  35. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +79 -1
  36. lightning_sdk/lightning_cloud/openapi/models/id_fork_body1.py +27 -1
  37. lightning_sdk/lightning_cloud/openapi/models/id_transfer_body.py +53 -1
  38. lightning_sdk/lightning_cloud/openapi/models/incident_id_messages_body.py +149 -0
  39. lightning_sdk/lightning_cloud/openapi/models/incidents_id_body.py +279 -0
  40. lightning_sdk/lightning_cloud/openapi/models/license_key_validate_body.py +123 -0
  41. lightning_sdk/lightning_cloud/openapi/models/messages_message_id_body.py +149 -0
  42. lightning_sdk/lightning_cloud/openapi/models/project_id_incidents_body.py +279 -0
  43. lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +27 -1
  44. lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +15 -15
  45. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_transfer_metadata.py +53 -1
  46. lightning_sdk/lightning_cloud/openapi/models/v1_create_license_request.py +175 -0
  47. lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +27 -1
  48. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_request.py +253 -0
  49. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_response.py +97 -0
  50. lightning_sdk/lightning_cloud/openapi/models/v1_delete_incident_message_response.py +97 -0
  51. lightning_sdk/lightning_cloud/openapi/models/v1_delete_incident_response.py +97 -0
  52. lightning_sdk/lightning_cloud/openapi/models/v1_delete_license_response.py +97 -0
  53. lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +27 -1
  54. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -1
  55. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_transfer_estimate_response.py +149 -0
  56. lightning_sdk/lightning_cloud/openapi/models/v1_group_pod_metrics.py +1241 -0
  57. lightning_sdk/lightning_cloud/openapi/models/v1_incident.py +565 -0
  58. lightning_sdk/lightning_cloud/openapi/models/v1_incident_detail.py +149 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_incident_event.py +27 -1
  60. lightning_sdk/lightning_cloud/openapi/models/v1_incident_message.py +253 -0
  61. lightning_sdk/lightning_cloud/openapi/models/v1_incident_type.py +1 -0
  62. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +53 -1
  63. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  64. lightning_sdk/lightning_cloud/openapi/models/v1_kai_scheduler_queue_metrics.py +627 -0
  65. lightning_sdk/lightning_cloud/openapi/models/v1_license.py +227 -0
  66. lightning_sdk/lightning_cloud/openapi/models/v1_list_group_pod_metrics_response.py +123 -0
  67. lightning_sdk/lightning_cloud/openapi/models/v1_list_incident_messages_response.py +149 -0
  68. lightning_sdk/lightning_cloud/openapi/models/v1_list_incidents_response.py +149 -0
  69. lightning_sdk/lightning_cloud/openapi/models/v1_list_kai_scheduler_queues_metrics_response.py +123 -0
  70. lightning_sdk/lightning_cloud/openapi/models/{v1_list_product_licenses_response.py → v1_list_license_response.py} +16 -16
  71. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +79 -1
  72. lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +27 -1
  73. lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +27 -1
  74. lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +27 -1
  75. lightning_sdk/lightning_cloud/openapi/models/v1_resource_visibility.py +1 -27
  76. lightning_sdk/lightning_cloud/openapi/models/v1_sdk_command_history_severity.py +104 -0
  77. lightning_sdk/lightning_cloud/openapi/models/v1_sdk_command_history_type.py +104 -0
  78. lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_type.py +1 -0
  79. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py +53 -1
  80. lightning_sdk/lightning_cloud/openapi/models/v1_token_login_request.py +123 -0
  81. lightning_sdk/lightning_cloud/openapi/models/v1_token_login_response.py +123 -0
  82. lightning_sdk/lightning_cloud/openapi/models/v1_token_owner_type.py +104 -0
  83. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +209 -131
  84. lightning_sdk/lightning_cloud/openapi/models/{v1_product_license_check_response.py → v1_validate_license_response.py} +21 -21
  85. lightning_sdk/lightning_cloud/rest_client.py +48 -45
  86. lightning_sdk/machine.py +2 -1
  87. lightning_sdk/studio.py +22 -2
  88. lightning_sdk/utils/license.py +13 -0
  89. {lightning_sdk-2025.10.8.dist-info → lightning_sdk-2025.10.22.dist-info}/METADATA +1 -1
  90. {lightning_sdk-2025.10.8.dist-info → lightning_sdk-2025.10.22.dist-info}/RECORD +94 -64
  91. lightning_sdk/lightning_cloud/openapi/models/v1_product_license.py +0 -435
  92. lightning_sdk/services/license.py +0 -363
  93. {lightning_sdk-2025.10.8.dist-info → lightning_sdk-2025.10.22.dist-info}/LICENSE +0 -0
  94. {lightning_sdk-2025.10.8.dist-info → lightning_sdk-2025.10.22.dist-info}/WHEEL +0 -0
  95. {lightning_sdk-2025.10.8.dist-info → lightning_sdk-2025.10.22.dist-info}/entry_points.txt +0 -0
  96. {lightning_sdk-2025.10.8.dist-info → lightning_sdk-2025.10.22.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,123 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ external/v1/auth_service.proto
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: version not set
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+
12
+ NOTE
13
+ ----
14
+ standard swagger-codegen-cli for this python client has been modified
15
+ by custom templates. The purpose of these templates is to include
16
+ typing information in the API and Model code. Please refer to the
17
+ main grid repository for more info
18
+ """
19
+
20
+ import pprint
21
+ import re # noqa: F401
22
+
23
+ from typing import TYPE_CHECKING
24
+
25
+ import six
26
+
27
+ if TYPE_CHECKING:
28
+ from datetime import datetime
29
+ from lightning_sdk.lightning_cloud.openapi.models import *
30
+
31
+ class V1ListKaiSchedulerQueuesMetricsResponse(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
+ 'metrics': 'list[V1KaiSchedulerQueueMetrics]'
45
+ }
46
+
47
+ attribute_map = {
48
+ 'metrics': 'metrics'
49
+ }
50
+
51
+ def __init__(self, metrics: 'list[V1KaiSchedulerQueueMetrics]' =None): # noqa: E501
52
+ """V1ListKaiSchedulerQueuesMetricsResponse - a model defined in Swagger""" # noqa: E501
53
+ self._metrics = None
54
+ self.discriminator = None
55
+ if metrics is not None:
56
+ self.metrics = metrics
57
+
58
+ @property
59
+ def metrics(self) -> 'list[V1KaiSchedulerQueueMetrics]':
60
+ """Gets the metrics of this V1ListKaiSchedulerQueuesMetricsResponse. # noqa: E501
61
+
62
+
63
+ :return: The metrics of this V1ListKaiSchedulerQueuesMetricsResponse. # noqa: E501
64
+ :rtype: list[V1KaiSchedulerQueueMetrics]
65
+ """
66
+ return self._metrics
67
+
68
+ @metrics.setter
69
+ def metrics(self, metrics: 'list[V1KaiSchedulerQueueMetrics]'):
70
+ """Sets the metrics of this V1ListKaiSchedulerQueuesMetricsResponse.
71
+
72
+
73
+ :param metrics: The metrics of this V1ListKaiSchedulerQueuesMetricsResponse. # noqa: E501
74
+ :type: list[V1KaiSchedulerQueueMetrics]
75
+ """
76
+
77
+ self._metrics = metrics
78
+
79
+ def to_dict(self) -> dict:
80
+ """Returns the model properties as a dict"""
81
+ result = {}
82
+
83
+ for attr, _ in six.iteritems(self.swagger_types):
84
+ value = getattr(self, attr)
85
+ if isinstance(value, list):
86
+ result[attr] = list(map(
87
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
88
+ value
89
+ ))
90
+ elif hasattr(value, "to_dict"):
91
+ result[attr] = value.to_dict()
92
+ elif isinstance(value, dict):
93
+ result[attr] = dict(map(
94
+ lambda item: (item[0], item[1].to_dict())
95
+ if hasattr(item[1], "to_dict") else item,
96
+ value.items()
97
+ ))
98
+ else:
99
+ result[attr] = value
100
+ if issubclass(V1ListKaiSchedulerQueuesMetricsResponse, dict):
101
+ for key, value in self.items():
102
+ result[key] = value
103
+
104
+ return result
105
+
106
+ def to_str(self) -> str:
107
+ """Returns the string representation of the model"""
108
+ return pprint.pformat(self.to_dict())
109
+
110
+ def __repr__(self) -> str:
111
+ """For `print` and `pprint`"""
112
+ return self.to_str()
113
+
114
+ def __eq__(self, other: 'V1ListKaiSchedulerQueuesMetricsResponse') -> bool:
115
+ """Returns true if both objects are equal"""
116
+ if not isinstance(other, V1ListKaiSchedulerQueuesMetricsResponse):
117
+ return False
118
+
119
+ return self.__dict__ == other.__dict__
120
+
121
+ def __ne__(self, other: 'V1ListKaiSchedulerQueuesMetricsResponse') -> bool:
122
+ """Returns true if both objects are not equal"""
123
+ return not self == other
@@ -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 V1ListProductLicensesResponse(object):
31
+ class V1ListLicenseResponse(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,37 +41,37 @@ class V1ListProductLicensesResponse(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
- 'licenses': 'list[V1ProductLicense]'
44
+ 'licenses': 'list[V1License]'
45
45
  }
46
46
 
47
47
  attribute_map = {
48
48
  'licenses': 'licenses'
49
49
  }
50
50
 
51
- def __init__(self, licenses: 'list[V1ProductLicense]' =None): # noqa: E501
52
- """V1ListProductLicensesResponse - a model defined in Swagger""" # noqa: E501
51
+ def __init__(self, licenses: 'list[V1License]' =None): # noqa: E501
52
+ """V1ListLicenseResponse - a model defined in Swagger""" # noqa: E501
53
53
  self._licenses = None
54
54
  self.discriminator = None
55
55
  if licenses is not None:
56
56
  self.licenses = licenses
57
57
 
58
58
  @property
59
- def licenses(self) -> 'list[V1ProductLicense]':
60
- """Gets the licenses of this V1ListProductLicensesResponse. # noqa: E501
59
+ def licenses(self) -> 'list[V1License]':
60
+ """Gets the licenses of this V1ListLicenseResponse. # noqa: E501
61
61
 
62
62
 
63
- :return: The licenses of this V1ListProductLicensesResponse. # noqa: E501
64
- :rtype: list[V1ProductLicense]
63
+ :return: The licenses of this V1ListLicenseResponse. # noqa: E501
64
+ :rtype: list[V1License]
65
65
  """
66
66
  return self._licenses
67
67
 
68
68
  @licenses.setter
69
- def licenses(self, licenses: 'list[V1ProductLicense]'):
70
- """Sets the licenses of this V1ListProductLicensesResponse.
69
+ def licenses(self, licenses: 'list[V1License]'):
70
+ """Sets the licenses of this V1ListLicenseResponse.
71
71
 
72
72
 
73
- :param licenses: The licenses of this V1ListProductLicensesResponse. # noqa: E501
74
- :type: list[V1ProductLicense]
73
+ :param licenses: The licenses of this V1ListLicenseResponse. # noqa: E501
74
+ :type: list[V1License]
75
75
  """
76
76
 
77
77
  self._licenses = licenses
@@ -97,7 +97,7 @@ class V1ListProductLicensesResponse(object):
97
97
  ))
98
98
  else:
99
99
  result[attr] = value
100
- if issubclass(V1ListProductLicensesResponse, dict):
100
+ if issubclass(V1ListLicenseResponse, dict):
101
101
  for key, value in self.items():
102
102
  result[key] = value
103
103
 
@@ -111,13 +111,13 @@ class V1ListProductLicensesResponse(object):
111
111
  """For `print` and `pprint`"""
112
112
  return self.to_str()
113
113
 
114
- def __eq__(self, other: 'V1ListProductLicensesResponse') -> bool:
114
+ def __eq__(self, other: 'V1ListLicenseResponse') -> bool:
115
115
  """Returns true if both objects are equal"""
116
- if not isinstance(other, V1ListProductLicensesResponse):
116
+ if not isinstance(other, V1ListLicenseResponse):
117
117
  return False
118
118
 
119
119
  return self.__dict__ == other.__dict__
120
120
 
121
- def __ne__(self, other: 'V1ListProductLicensesResponse') -> bool:
121
+ def __ne__(self, other: 'V1ListLicenseResponse') -> bool:
122
122
  """Returns true if both objects are not equal"""
123
123
  return not self == other
@@ -46,6 +46,7 @@ class V1Machine(object):
46
46
  'created_at': 'datetime',
47
47
  'id': 'str',
48
48
  'instance_type': 'str',
49
+ 'management_api_url': 'str',
49
50
  'name': 'str',
50
51
  'org_id': 'str',
51
52
  'provider': 'str',
@@ -53,6 +54,8 @@ class V1Machine(object):
53
54
  'provider_region': 'str',
54
55
  'provisioning_method': 'str',
55
56
  'ready_at': 'datetime',
57
+ 'resource_id': 'str',
58
+ 'resource_type': 'str',
56
59
  'resources': 'V1Resources',
57
60
  'status': 'str',
58
61
  'unschedulable': 'bool',
@@ -66,6 +69,7 @@ class V1Machine(object):
66
69
  'created_at': 'createdAt',
67
70
  'id': 'id',
68
71
  'instance_type': 'instanceType',
72
+ 'management_api_url': 'managementApiUrl',
69
73
  'name': 'name',
70
74
  'org_id': 'orgId',
71
75
  'provider': 'provider',
@@ -73,6 +77,8 @@ class V1Machine(object):
73
77
  'provider_region': 'providerRegion',
74
78
  'provisioning_method': 'provisioningMethod',
75
79
  'ready_at': 'readyAt',
80
+ 'resource_id': 'resourceId',
81
+ 'resource_type': 'resourceType',
76
82
  'resources': 'resources',
77
83
  'status': 'status',
78
84
  'unschedulable': 'unschedulable',
@@ -80,13 +86,14 @@ class V1Machine(object):
80
86
  'warning_message': 'warningMessage'
81
87
  }
82
88
 
83
- def __init__(self, address: 'str' =None, cluster_id: 'str' =None, created_at: 'datetime' =None, id: 'str' =None, instance_type: 'str' =None, name: 'str' =None, org_id: 'str' =None, provider: 'str' =None, provider_instance_id: 'str' =None, provider_region: 'str' =None, provisioning_method: 'str' =None, ready_at: 'datetime' =None, resources: 'V1Resources' =None, status: 'str' =None, unschedulable: 'bool' =None, updated_at: 'datetime' =None, warning_message: 'str' =None): # noqa: E501
89
+ def __init__(self, address: 'str' =None, cluster_id: 'str' =None, created_at: 'datetime' =None, id: 'str' =None, instance_type: 'str' =None, management_api_url: 'str' =None, name: 'str' =None, org_id: 'str' =None, provider: 'str' =None, provider_instance_id: 'str' =None, provider_region: 'str' =None, provisioning_method: 'str' =None, ready_at: 'datetime' =None, resource_id: 'str' =None, resource_type: 'str' =None, resources: 'V1Resources' =None, status: 'str' =None, unschedulable: 'bool' =None, updated_at: 'datetime' =None, warning_message: 'str' =None): # noqa: E501
84
90
  """V1Machine - a model defined in Swagger""" # noqa: E501
85
91
  self._address = None
86
92
  self._cluster_id = None
87
93
  self._created_at = None
88
94
  self._id = None
89
95
  self._instance_type = None
96
+ self._management_api_url = None
90
97
  self._name = None
91
98
  self._org_id = None
92
99
  self._provider = None
@@ -94,6 +101,8 @@ class V1Machine(object):
94
101
  self._provider_region = None
95
102
  self._provisioning_method = None
96
103
  self._ready_at = None
104
+ self._resource_id = None
105
+ self._resource_type = None
97
106
  self._resources = None
98
107
  self._status = None
99
108
  self._unschedulable = None
@@ -110,6 +119,8 @@ class V1Machine(object):
110
119
  self.id = id
111
120
  if instance_type is not None:
112
121
  self.instance_type = instance_type
122
+ if management_api_url is not None:
123
+ self.management_api_url = management_api_url
113
124
  if name is not None:
114
125
  self.name = name
115
126
  if org_id is not None:
@@ -124,6 +135,10 @@ class V1Machine(object):
124
135
  self.provisioning_method = provisioning_method
125
136
  if ready_at is not None:
126
137
  self.ready_at = ready_at
138
+ if resource_id is not None:
139
+ self.resource_id = resource_id
140
+ if resource_type is not None:
141
+ self.resource_type = resource_type
127
142
  if resources is not None:
128
143
  self.resources = resources
129
144
  if status is not None:
@@ -240,6 +255,27 @@ class V1Machine(object):
240
255
 
241
256
  self._instance_type = instance_type
242
257
 
258
+ @property
259
+ def management_api_url(self) -> 'str':
260
+ """Gets the management_api_url of this V1Machine. # noqa: E501
261
+
262
+
263
+ :return: The management_api_url of this V1Machine. # noqa: E501
264
+ :rtype: str
265
+ """
266
+ return self._management_api_url
267
+
268
+ @management_api_url.setter
269
+ def management_api_url(self, management_api_url: 'str'):
270
+ """Sets the management_api_url of this V1Machine.
271
+
272
+
273
+ :param management_api_url: The management_api_url of this V1Machine. # noqa: E501
274
+ :type: str
275
+ """
276
+
277
+ self._management_api_url = management_api_url
278
+
243
279
  @property
244
280
  def name(self) -> 'str':
245
281
  """Gets the name of this V1Machine. # noqa: E501
@@ -387,6 +423,48 @@ class V1Machine(object):
387
423
 
388
424
  self._ready_at = ready_at
389
425
 
426
+ @property
427
+ def resource_id(self) -> 'str':
428
+ """Gets the resource_id of this V1Machine. # noqa: E501
429
+
430
+
431
+ :return: The resource_id of this V1Machine. # noqa: E501
432
+ :rtype: str
433
+ """
434
+ return self._resource_id
435
+
436
+ @resource_id.setter
437
+ def resource_id(self, resource_id: 'str'):
438
+ """Sets the resource_id of this V1Machine.
439
+
440
+
441
+ :param resource_id: The resource_id of this V1Machine. # noqa: E501
442
+ :type: str
443
+ """
444
+
445
+ self._resource_id = resource_id
446
+
447
+ @property
448
+ def resource_type(self) -> 'str':
449
+ """Gets the resource_type of this V1Machine. # noqa: E501
450
+
451
+
452
+ :return: The resource_type of this V1Machine. # noqa: E501
453
+ :rtype: str
454
+ """
455
+ return self._resource_type
456
+
457
+ @resource_type.setter
458
+ def resource_type(self, resource_type: 'str'):
459
+ """Sets the resource_type of this V1Machine.
460
+
461
+
462
+ :param resource_type: The resource_type of this V1Machine. # noqa: E501
463
+ :type: str
464
+ """
465
+
466
+ self._resource_type = resource_type
467
+
390
468
  @property
391
469
  def resources(self) -> 'V1Resources':
392
470
  """Gets the resources of this V1Machine. # noqa: E501
@@ -55,6 +55,7 @@ class V1Membership(object):
55
55
  'membership_count': 'str',
56
56
  'name': 'str',
57
57
  'next_free_credits_grant': 'str',
58
+ 'organization_billing_enabled': 'bool',
58
59
  'owner_id': 'str',
59
60
  'owner_type': 'V1OwnerType',
60
61
  'project_id': 'str',
@@ -79,6 +80,7 @@ class V1Membership(object):
79
80
  'membership_count': 'membershipCount',
80
81
  'name': 'name',
81
82
  'next_free_credits_grant': 'nextFreeCreditsGrant',
83
+ 'organization_billing_enabled': 'organizationBillingEnabled',
82
84
  'owner_id': 'ownerId',
83
85
  'owner_type': 'ownerType',
84
86
  'project_id': 'projectId',
@@ -88,7 +90,7 @@ class V1Membership(object):
88
90
  'user_id': 'userId'
89
91
  }
90
92
 
91
- def __init__(self, balance: 'float' =None, created_at: 'datetime' =None, creator_id: 'str' =None, current_storage_bytes: 'str' =None, datastore_count: 'str' =None, description: 'str' =None, display_name: 'str' =None, free_credits_enabled: 'bool' =None, free_storage_bytes: 'str' =None, is_default: 'bool' =None, job_count: 'str' =None, membership_count: 'str' =None, name: 'str' =None, next_free_credits_grant: 'str' =None, owner_id: 'str' =None, owner_type: 'V1OwnerType' =None, project_id: 'str' =None, quotas: 'V1Quotas' =None, roles: 'list[V1Role]' =None, updated_at: 'datetime' =None, user_id: 'str' =None): # noqa: E501
93
+ def __init__(self, balance: 'float' =None, created_at: 'datetime' =None, creator_id: 'str' =None, current_storage_bytes: 'str' =None, datastore_count: 'str' =None, description: 'str' =None, display_name: 'str' =None, free_credits_enabled: 'bool' =None, free_storage_bytes: 'str' =None, is_default: 'bool' =None, job_count: 'str' =None, membership_count: 'str' =None, name: 'str' =None, next_free_credits_grant: 'str' =None, organization_billing_enabled: 'bool' =None, owner_id: 'str' =None, owner_type: 'V1OwnerType' =None, project_id: 'str' =None, quotas: 'V1Quotas' =None, roles: 'list[V1Role]' =None, updated_at: 'datetime' =None, user_id: 'str' =None): # noqa: E501
92
94
  """V1Membership - a model defined in Swagger""" # noqa: E501
93
95
  self._balance = None
94
96
  self._created_at = None
@@ -104,6 +106,7 @@ class V1Membership(object):
104
106
  self._membership_count = None
105
107
  self._name = None
106
108
  self._next_free_credits_grant = None
109
+ self._organization_billing_enabled = None
107
110
  self._owner_id = None
108
111
  self._owner_type = None
109
112
  self._project_id = None
@@ -140,6 +143,8 @@ class V1Membership(object):
140
143
  self.name = name
141
144
  if next_free_credits_grant is not None:
142
145
  self.next_free_credits_grant = next_free_credits_grant
146
+ if organization_billing_enabled is not None:
147
+ self.organization_billing_enabled = organization_billing_enabled
143
148
  if owner_id is not None:
144
149
  self.owner_id = owner_id
145
150
  if owner_type is not None:
@@ -449,6 +454,27 @@ class V1Membership(object):
449
454
 
450
455
  self._next_free_credits_grant = next_free_credits_grant
451
456
 
457
+ @property
458
+ def organization_billing_enabled(self) -> 'bool':
459
+ """Gets the organization_billing_enabled of this V1Membership. # noqa: E501
460
+
461
+
462
+ :return: The organization_billing_enabled of this V1Membership. # noqa: E501
463
+ :rtype: bool
464
+ """
465
+ return self._organization_billing_enabled
466
+
467
+ @organization_billing_enabled.setter
468
+ def organization_billing_enabled(self, organization_billing_enabled: 'bool'):
469
+ """Sets the organization_billing_enabled of this V1Membership.
470
+
471
+
472
+ :param organization_billing_enabled: The organization_billing_enabled of this V1Membership. # noqa: E501
473
+ :type: bool
474
+ """
475
+
476
+ self._organization_billing_enabled = organization_billing_enabled
477
+
452
478
  @property
453
479
  def owner_id(self) -> 'str':
454
480
  """Gets the owner_id of this V1Membership. # noqa: E501
@@ -62,6 +62,7 @@ class V1ProjectMembership(object):
62
62
  'name': 'str',
63
63
  'next_free_credits_grant': 'str',
64
64
  'organization': 'str',
65
+ 'organization_billing_enabled': 'bool',
65
66
  'owner_id': 'str',
66
67
  'owner_type': 'V1OwnerType',
67
68
  'project_id': 'str',
@@ -94,6 +95,7 @@ class V1ProjectMembership(object):
94
95
  'name': 'name',
95
96
  'next_free_credits_grant': 'nextFreeCreditsGrant',
96
97
  'organization': 'organization',
98
+ 'organization_billing_enabled': 'organizationBillingEnabled',
97
99
  'owner_id': 'ownerId',
98
100
  'owner_type': 'ownerType',
99
101
  'project_id': 'projectId',
@@ -104,7 +106,7 @@ class V1ProjectMembership(object):
104
106
  'username': 'username'
105
107
  }
106
108
 
107
- def __init__(self, avatar_url: 'str' =None, balance: 'float' =None, created_at: 'datetime' =None, creator_id: 'str' =None, current_storage_bytes: 'str' =None, datastore_count: 'str' =None, description: 'str' =None, display_name: 'str' =None, email: 'str' =None, first_name: 'str' =None, free_credits_enabled: 'bool' =None, free_storage_bytes: 'str' =None, inactive: 'bool' =None, is_default: 'bool' =None, job_count: 'str' =None, job_title: 'str' =None, last_name: 'str' =None, membership_count: 'str' =None, name: 'str' =None, next_free_credits_grant: 'str' =None, organization: 'str' =None, owner_id: 'str' =None, owner_type: 'V1OwnerType' =None, project_id: 'str' =None, quotas: 'V1Quotas' =None, roles: 'list[V1Role]' =None, updated_at: 'datetime' =None, user_id: 'str' =None, username: 'str' =None): # noqa: E501
109
+ def __init__(self, avatar_url: 'str' =None, balance: 'float' =None, created_at: 'datetime' =None, creator_id: 'str' =None, current_storage_bytes: 'str' =None, datastore_count: 'str' =None, description: 'str' =None, display_name: 'str' =None, email: 'str' =None, first_name: 'str' =None, free_credits_enabled: 'bool' =None, free_storage_bytes: 'str' =None, inactive: 'bool' =None, is_default: 'bool' =None, job_count: 'str' =None, job_title: 'str' =None, last_name: 'str' =None, membership_count: 'str' =None, name: 'str' =None, next_free_credits_grant: 'str' =None, organization: 'str' =None, organization_billing_enabled: 'bool' =None, owner_id: 'str' =None, owner_type: 'V1OwnerType' =None, project_id: 'str' =None, quotas: 'V1Quotas' =None, roles: 'list[V1Role]' =None, updated_at: 'datetime' =None, user_id: 'str' =None, username: 'str' =None): # noqa: E501
108
110
  """V1ProjectMembership - a model defined in Swagger""" # noqa: E501
109
111
  self._avatar_url = None
110
112
  self._balance = None
@@ -127,6 +129,7 @@ class V1ProjectMembership(object):
127
129
  self._name = None
128
130
  self._next_free_credits_grant = None
129
131
  self._organization = None
132
+ self._organization_billing_enabled = None
130
133
  self._owner_id = None
131
134
  self._owner_type = None
132
135
  self._project_id = None
@@ -178,6 +181,8 @@ class V1ProjectMembership(object):
178
181
  self.next_free_credits_grant = next_free_credits_grant
179
182
  if organization is not None:
180
183
  self.organization = organization
184
+ if organization_billing_enabled is not None:
185
+ self.organization_billing_enabled = organization_billing_enabled
181
186
  if owner_id is not None:
182
187
  self.owner_id = owner_id
183
188
  if owner_type is not None:
@@ -636,6 +641,27 @@ class V1ProjectMembership(object):
636
641
 
637
642
  self._organization = organization
638
643
 
644
+ @property
645
+ def organization_billing_enabled(self) -> 'bool':
646
+ """Gets the organization_billing_enabled of this V1ProjectMembership. # noqa: E501
647
+
648
+
649
+ :return: The organization_billing_enabled of this V1ProjectMembership. # noqa: E501
650
+ :rtype: bool
651
+ """
652
+ return self._organization_billing_enabled
653
+
654
+ @organization_billing_enabled.setter
655
+ def organization_billing_enabled(self, organization_billing_enabled: 'bool'):
656
+ """Sets the organization_billing_enabled of this V1ProjectMembership.
657
+
658
+
659
+ :param organization_billing_enabled: The organization_billing_enabled of this V1ProjectMembership. # noqa: E501
660
+ :type: bool
661
+ """
662
+
663
+ self._organization_billing_enabled = organization_billing_enabled
664
+
639
665
  @property
640
666
  def owner_id(self) -> 'str':
641
667
  """Gets the owner_id of this V1ProjectMembership. # noqa: E501
@@ -56,6 +56,7 @@ class V1ProjectSettings(object):
56
56
  'auto_switch_machine': 'bool',
57
57
  'default_machine_image_version': 'str',
58
58
  'default_machine_type': 'str',
59
+ 'organization_billing_enabled': 'bool',
59
60
  'preferred_cluster': 'str',
60
61
  'preferred_deployment_provider': 'str',
61
62
  'preferred_studio_provider': 'str',
@@ -80,6 +81,7 @@ class V1ProjectSettings(object):
80
81
  'auto_switch_machine': 'autoSwitchMachine',
81
82
  'default_machine_image_version': 'defaultMachineImageVersion',
82
83
  'default_machine_type': 'defaultMachineType',
84
+ 'organization_billing_enabled': 'organizationBillingEnabled',
83
85
  'preferred_cluster': 'preferredCluster',
84
86
  'preferred_deployment_provider': 'preferredDeploymentProvider',
85
87
  'preferred_studio_provider': 'preferredStudioProvider',
@@ -88,7 +90,7 @@ class V1ProjectSettings(object):
88
90
  'switch_to_default_machine_on_idle': 'switchToDefaultMachineOnIdle'
89
91
  }
90
92
 
91
- 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_image_version: 'str' =None, default_machine_type: 'str' =None, preferred_cluster: 'str' =None, preferred_deployment_provider: 'str' =None, preferred_studio_provider: 'str' =None, same_compute_on_resume: 'bool' =None, start_studio_on_spot_instance: 'bool' =None, switch_to_default_machine_on_idle: 'bool' =None): # noqa: E501
93
+ 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_image_version: 'str' =None, default_machine_type: 'str' =None, organization_billing_enabled: 'bool' =None, preferred_cluster: 'str' =None, preferred_deployment_provider: 'str' =None, preferred_studio_provider: 'str' =None, same_compute_on_resume: 'bool' =None, start_studio_on_spot_instance: 'bool' =None, switch_to_default_machine_on_idle: 'bool' =None): # noqa: E501
92
94
  """V1ProjectSettings - a model defined in Swagger""" # noqa: E501
93
95
  self._allow_aws_saas = None
94
96
  self._allow_credits_auto_replenish = None
@@ -105,6 +107,7 @@ class V1ProjectSettings(object):
105
107
  self._auto_switch_machine = None
106
108
  self._default_machine_image_version = None
107
109
  self._default_machine_type = None
110
+ self._organization_billing_enabled = None
108
111
  self._preferred_cluster = None
109
112
  self._preferred_deployment_provider = None
110
113
  self._preferred_studio_provider = None
@@ -142,6 +145,8 @@ class V1ProjectSettings(object):
142
145
  self.default_machine_image_version = default_machine_image_version
143
146
  if default_machine_type is not None:
144
147
  self.default_machine_type = default_machine_type
148
+ if organization_billing_enabled is not None:
149
+ self.organization_billing_enabled = organization_billing_enabled
145
150
  if preferred_cluster is not None:
146
151
  self.preferred_cluster = preferred_cluster
147
152
  if preferred_deployment_provider is not None:
@@ -472,6 +477,27 @@ class V1ProjectSettings(object):
472
477
 
473
478
  self._default_machine_type = default_machine_type
474
479
 
480
+ @property
481
+ def organization_billing_enabled(self) -> 'bool':
482
+ """Gets the organization_billing_enabled of this V1ProjectSettings. # noqa: E501
483
+
484
+
485
+ :return: The organization_billing_enabled of this V1ProjectSettings. # noqa: E501
486
+ :rtype: bool
487
+ """
488
+ return self._organization_billing_enabled
489
+
490
+ @organization_billing_enabled.setter
491
+ def organization_billing_enabled(self, organization_billing_enabled: 'bool'):
492
+ """Sets the organization_billing_enabled of this V1ProjectSettings.
493
+
494
+
495
+ :param organization_billing_enabled: The organization_billing_enabled of this V1ProjectSettings. # noqa: E501
496
+ :type: bool
497
+ """
498
+
499
+ self._organization_billing_enabled = organization_billing_enabled
500
+
475
501
  @property
476
502
  def preferred_cluster(self) -> 'str':
477
503
  """Gets the preferred_cluster of this V1ProjectSettings. # noqa: E501
@@ -43,30 +43,25 @@ class V1ResourceVisibility(object):
43
43
  swagger_types = {
44
44
  'all_org_users': 'bool',
45
45
  'all_users': 'bool',
46
- 'public': 'bool',
47
46
  'user_ids': 'list[str]'
48
47
  }
49
48
 
50
49
  attribute_map = {
51
50
  'all_org_users': 'allOrgUsers',
52
51
  'all_users': 'allUsers',
53
- 'public': 'public',
54
52
  'user_ids': 'userIds'
55
53
  }
56
54
 
57
- def __init__(self, all_org_users: 'bool' =None, all_users: 'bool' =None, public: 'bool' =None, user_ids: 'list[str]' =None): # noqa: E501
55
+ def __init__(self, all_org_users: 'bool' =None, all_users: 'bool' =None, user_ids: 'list[str]' =None): # noqa: E501
58
56
  """V1ResourceVisibility - a model defined in Swagger""" # noqa: E501
59
57
  self._all_org_users = None
60
58
  self._all_users = None
61
- self._public = None
62
59
  self._user_ids = None
63
60
  self.discriminator = None
64
61
  if all_org_users is not None:
65
62
  self.all_org_users = all_org_users
66
63
  if all_users is not None:
67
64
  self.all_users = all_users
68
- if public is not None:
69
- self.public = public
70
65
  if user_ids is not None:
71
66
  self.user_ids = user_ids
72
67
 
@@ -112,27 +107,6 @@ class V1ResourceVisibility(object):
112
107
 
113
108
  self._all_users = all_users
114
109
 
115
- @property
116
- def public(self) -> 'bool':
117
- """Gets the public of this V1ResourceVisibility. # noqa: E501
118
-
119
-
120
- :return: The public of this V1ResourceVisibility. # noqa: E501
121
- :rtype: bool
122
- """
123
- return self._public
124
-
125
- @public.setter
126
- def public(self, public: 'bool'):
127
- """Sets the public of this V1ResourceVisibility.
128
-
129
-
130
- :param public: The public of this V1ResourceVisibility. # noqa: E501
131
- :type: bool
132
- """
133
-
134
- self._public = public
135
-
136
110
  @property
137
111
  def user_ids(self) -> 'list[str]':
138
112
  """Gets the user_ids of this V1ResourceVisibility. # noqa: E501