lightning-sdk 2025.7.17__py3-none-any.whl → 2025.7.30rc0__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 (99) hide show
  1. lightning_sdk/__init__.py +3 -2
  2. lightning_sdk/api/cloud_account_api.py +204 -0
  3. lightning_sdk/api/deployment_api.py +11 -0
  4. lightning_sdk/api/job_api.py +82 -10
  5. lightning_sdk/api/llm_api.py +1 -1
  6. lightning_sdk/api/mmt_api.py +44 -5
  7. lightning_sdk/api/pipeline_api.py +4 -3
  8. lightning_sdk/api/studio_api.py +51 -8
  9. lightning_sdk/api/utils.py +6 -2
  10. lightning_sdk/cli/clusters_menu.py +3 -3
  11. lightning_sdk/cli/create.py +25 -11
  12. lightning_sdk/cli/deploy/_auth.py +19 -3
  13. lightning_sdk/cli/deploy/serve.py +21 -5
  14. lightning_sdk/cli/download.py +25 -1
  15. lightning_sdk/cli/entrypoint.py +4 -2
  16. lightning_sdk/cli/list.py +5 -1
  17. lightning_sdk/cli/run.py +3 -1
  18. lightning_sdk/cli/start.py +40 -8
  19. lightning_sdk/cli/switch.py +3 -1
  20. lightning_sdk/deployment/deployment.py +8 -0
  21. lightning_sdk/job/base.py +27 -3
  22. lightning_sdk/job/job.py +28 -4
  23. lightning_sdk/job/v1.py +10 -1
  24. lightning_sdk/job/v2.py +22 -2
  25. lightning_sdk/job/work.py +5 -1
  26. lightning_sdk/lightning_cloud/openapi/__init__.py +14 -1
  27. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +428 -0
  28. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +153 -48
  29. lightning_sdk/lightning_cloud/openapi/api/cloudy_service_api.py +295 -0
  30. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +93 -0
  31. lightning_sdk/lightning_cloud/openapi/models/__init__.py +14 -1
  32. lightning_sdk/lightning_cloud/openapi/models/agentmanagedendpoints_id_body.py +27 -1
  33. lightning_sdk/lightning_cloud/openapi/models/blogposts_id_body.py +53 -1
  34. lightning_sdk/lightning_cloud/openapi/models/conversations_id_body1.py +123 -0
  35. lightning_sdk/lightning_cloud/openapi/models/messages_id_body.py +123 -0
  36. lightning_sdk/lightning_cloud/openapi/models/metricsstream_id_body.py +27 -1
  37. lightning_sdk/lightning_cloud/openapi/models/project_id_schedules_body.py +81 -3
  38. lightning_sdk/lightning_cloud/openapi/models/schedules_id_body.py +79 -1
  39. lightning_sdk/lightning_cloud/openapi/models/user_id_upgradetrigger_body.py +201 -0
  40. lightning_sdk/lightning_cloud/openapi/models/user_user_id_body.py +201 -0
  41. lightning_sdk/lightning_cloud/openapi/models/v1_billing_subscription.py +27 -1
  42. lightning_sdk/lightning_cloud/openapi/models/v1_blog_post.py +53 -1
  43. lightning_sdk/lightning_cloud/openapi/models/v1_cloudy_settings.py +227 -0
  44. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
  45. lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +27 -1
  46. lightning_sdk/lightning_cloud/openapi/models/v1_conversation_response_chunk.py +27 -1
  47. lightning_sdk/lightning_cloud/openapi/models/v1_create_billing_upgrade_trigger_record_response.py +97 -0
  48. lightning_sdk/lightning_cloud/openapi/models/v1_create_blog_post_request.py +53 -1
  49. lightning_sdk/lightning_cloud/openapi/models/v1_create_checkout_session_request.py +27 -1
  50. lightning_sdk/lightning_cloud/openapi/models/v1_create_subscription_checkout_session_request.py +55 -3
  51. lightning_sdk/lightning_cloud/openapi/models/v1_function_call.py +149 -0
  52. lightning_sdk/lightning_cloud/openapi/models/{v1_get_clickhouse_assistant_session_daily_aggregated_response.py → v1_get_assistant_session_daily_aggregated_response.py} +22 -22
  53. lightning_sdk/lightning_cloud/openapi/models/v1_get_cluster_health_response.py +149 -0
  54. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +27 -1
  55. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  56. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +105 -1
  57. lightning_sdk/lightning_cloud/openapi/models/v1_like_status.py +104 -0
  58. lightning_sdk/lightning_cloud/openapi/models/v1_list_published_managed_endpoints_response.py +123 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_managed_endpoint.py +27 -1
  60. lightning_sdk/lightning_cloud/openapi/models/v1_managed_model.py +95 -17
  61. lightning_sdk/lightning_cloud/openapi/models/v1_message.py +27 -1
  62. lightning_sdk/lightning_cloud/openapi/models/v1_quote_subscription_response.py +27 -1
  63. lightning_sdk/lightning_cloud/openapi/models/v1_resource_visibility.py +27 -1
  64. lightning_sdk/lightning_cloud/openapi/models/v1_response_choice.py +29 -3
  65. lightning_sdk/lightning_cloud/openapi/models/v1_schedule.py +79 -1
  66. lightning_sdk/lightning_cloud/openapi/models/v1_service_health.py +27 -1
  67. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1.py +79 -1
  68. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1_status.py +79 -1
  69. lightning_sdk/lightning_cloud/openapi/models/v1_tool_call.py +175 -0
  70. lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_like_response.py +149 -0
  71. lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_message_like_response.py +149 -0
  72. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +79 -313
  73. lightning_sdk/lightning_cloud/openapi/models/v1_volume_state.py +1 -0
  74. lightning_sdk/llm/llm.py +69 -11
  75. lightning_sdk/llm/public_assistants.json +32 -8
  76. lightning_sdk/machine.py +151 -43
  77. lightning_sdk/mmt/base.py +20 -2
  78. lightning_sdk/mmt/mmt.py +25 -3
  79. lightning_sdk/mmt/v1.py +7 -1
  80. lightning_sdk/mmt/v2.py +27 -3
  81. lightning_sdk/models.py +1 -1
  82. lightning_sdk/organization.py +4 -0
  83. lightning_sdk/pipeline/pipeline.py +16 -5
  84. lightning_sdk/pipeline/printer.py +5 -3
  85. lightning_sdk/pipeline/schedule.py +844 -1
  86. lightning_sdk/pipeline/steps.py +19 -4
  87. lightning_sdk/sandbox.py +4 -1
  88. lightning_sdk/serve.py +2 -0
  89. lightning_sdk/studio.py +91 -44
  90. lightning_sdk/teamspace.py +19 -10
  91. lightning_sdk/utils/resolve.py +37 -2
  92. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.30rc0.dist-info}/METADATA +7 -5
  93. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.30rc0.dist-info}/RECORD +98 -85
  94. lightning_sdk/api/cluster_api.py +0 -119
  95. /lightning_sdk/cli/{inspect.py → inspection.py} +0 -0
  96. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.30rc0.dist-info}/LICENSE +0 -0
  97. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.30rc0.dist-info}/WHEEL +0 -0
  98. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.30rc0.dist-info}/entry_points.txt +0 -0
  99. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.30rc0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,201 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ external/v1/auth_service.proto
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: version not set
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+
12
+ NOTE
13
+ ----
14
+ standard swagger-codegen-cli for this python client has been modified
15
+ by custom templates. The purpose of these templates is to include
16
+ typing information in the API and Model code. Please refer to the
17
+ main grid repository for more info
18
+ """
19
+
20
+ import pprint
21
+ import re # noqa: F401
22
+
23
+ from typing import TYPE_CHECKING
24
+
25
+ import six
26
+
27
+ if TYPE_CHECKING:
28
+ from datetime import datetime
29
+ from lightning_sdk.lightning_cloud.openapi.models import *
30
+
31
+ class UserUserIdBody(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
+ 'default_mode': 'str',
45
+ 'preferred_diff_viewer': 'str',
46
+ 'preferred_experts': 'list[str]',
47
+ 'preferred_models': 'list[str]'
48
+ }
49
+
50
+ attribute_map = {
51
+ 'default_mode': 'defaultMode',
52
+ 'preferred_diff_viewer': 'preferredDiffViewer',
53
+ 'preferred_experts': 'preferredExperts',
54
+ 'preferred_models': 'preferredModels'
55
+ }
56
+
57
+ def __init__(self, default_mode: 'str' =None, preferred_diff_viewer: 'str' =None, preferred_experts: 'list[str]' =None, preferred_models: 'list[str]' =None): # noqa: E501
58
+ """UserUserIdBody - a model defined in Swagger""" # noqa: E501
59
+ self._default_mode = None
60
+ self._preferred_diff_viewer = None
61
+ self._preferred_experts = None
62
+ self._preferred_models = None
63
+ self.discriminator = None
64
+ if default_mode is not None:
65
+ self.default_mode = default_mode
66
+ if preferred_diff_viewer is not None:
67
+ self.preferred_diff_viewer = preferred_diff_viewer
68
+ if preferred_experts is not None:
69
+ self.preferred_experts = preferred_experts
70
+ if preferred_models is not None:
71
+ self.preferred_models = preferred_models
72
+
73
+ @property
74
+ def default_mode(self) -> 'str':
75
+ """Gets the default_mode of this UserUserIdBody. # noqa: E501
76
+
77
+
78
+ :return: The default_mode of this UserUserIdBody. # noqa: E501
79
+ :rtype: str
80
+ """
81
+ return self._default_mode
82
+
83
+ @default_mode.setter
84
+ def default_mode(self, default_mode: 'str'):
85
+ """Sets the default_mode of this UserUserIdBody.
86
+
87
+
88
+ :param default_mode: The default_mode of this UserUserIdBody. # noqa: E501
89
+ :type: str
90
+ """
91
+
92
+ self._default_mode = default_mode
93
+
94
+ @property
95
+ def preferred_diff_viewer(self) -> 'str':
96
+ """Gets the preferred_diff_viewer of this UserUserIdBody. # noqa: E501
97
+
98
+
99
+ :return: The preferred_diff_viewer of this UserUserIdBody. # noqa: E501
100
+ :rtype: str
101
+ """
102
+ return self._preferred_diff_viewer
103
+
104
+ @preferred_diff_viewer.setter
105
+ def preferred_diff_viewer(self, preferred_diff_viewer: 'str'):
106
+ """Sets the preferred_diff_viewer of this UserUserIdBody.
107
+
108
+
109
+ :param preferred_diff_viewer: The preferred_diff_viewer of this UserUserIdBody. # noqa: E501
110
+ :type: str
111
+ """
112
+
113
+ self._preferred_diff_viewer = preferred_diff_viewer
114
+
115
+ @property
116
+ def preferred_experts(self) -> 'list[str]':
117
+ """Gets the preferred_experts of this UserUserIdBody. # noqa: E501
118
+
119
+
120
+ :return: The preferred_experts of this UserUserIdBody. # noqa: E501
121
+ :rtype: list[str]
122
+ """
123
+ return self._preferred_experts
124
+
125
+ @preferred_experts.setter
126
+ def preferred_experts(self, preferred_experts: 'list[str]'):
127
+ """Sets the preferred_experts of this UserUserIdBody.
128
+
129
+
130
+ :param preferred_experts: The preferred_experts of this UserUserIdBody. # noqa: E501
131
+ :type: list[str]
132
+ """
133
+
134
+ self._preferred_experts = preferred_experts
135
+
136
+ @property
137
+ def preferred_models(self) -> 'list[str]':
138
+ """Gets the preferred_models of this UserUserIdBody. # noqa: E501
139
+
140
+
141
+ :return: The preferred_models of this UserUserIdBody. # noqa: E501
142
+ :rtype: list[str]
143
+ """
144
+ return self._preferred_models
145
+
146
+ @preferred_models.setter
147
+ def preferred_models(self, preferred_models: 'list[str]'):
148
+ """Sets the preferred_models of this UserUserIdBody.
149
+
150
+
151
+ :param preferred_models: The preferred_models of this UserUserIdBody. # noqa: E501
152
+ :type: list[str]
153
+ """
154
+
155
+ self._preferred_models = preferred_models
156
+
157
+ def to_dict(self) -> dict:
158
+ """Returns the model properties as a dict"""
159
+ result = {}
160
+
161
+ for attr, _ in six.iteritems(self.swagger_types):
162
+ value = getattr(self, attr)
163
+ if isinstance(value, list):
164
+ result[attr] = list(map(
165
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
166
+ value
167
+ ))
168
+ elif hasattr(value, "to_dict"):
169
+ result[attr] = value.to_dict()
170
+ elif isinstance(value, dict):
171
+ result[attr] = dict(map(
172
+ lambda item: (item[0], item[1].to_dict())
173
+ if hasattr(item[1], "to_dict") else item,
174
+ value.items()
175
+ ))
176
+ else:
177
+ result[attr] = value
178
+ if issubclass(UserUserIdBody, dict):
179
+ for key, value in self.items():
180
+ result[key] = value
181
+
182
+ return result
183
+
184
+ def to_str(self) -> str:
185
+ """Returns the string representation of the model"""
186
+ return pprint.pformat(self.to_dict())
187
+
188
+ def __repr__(self) -> str:
189
+ """For `print` and `pprint`"""
190
+ return self.to_str()
191
+
192
+ def __eq__(self, other: 'UserUserIdBody') -> bool:
193
+ """Returns true if both objects are equal"""
194
+ if not isinstance(other, UserUserIdBody):
195
+ return False
196
+
197
+ return self.__dict__ == other.__dict__
198
+
199
+ def __ne__(self, other: 'UserUserIdBody') -> bool:
200
+ """Returns true if both objects are not equal"""
201
+ return not self == other
@@ -42,6 +42,7 @@ class V1BillingSubscription(object):
42
42
  """
43
43
  swagger_types = {
44
44
  'amount': 'int',
45
+ 'canceled_at': 'datetime',
45
46
  'card_last4': 'str',
46
47
  'card_type': 'str',
47
48
  'features': 'list[V1BillingFeature]',
@@ -55,6 +56,7 @@ class V1BillingSubscription(object):
55
56
 
56
57
  attribute_map = {
57
58
  'amount': 'amount',
59
+ 'canceled_at': 'canceledAt',
58
60
  'card_last4': 'cardLast4',
59
61
  'card_type': 'cardType',
60
62
  'features': 'features',
@@ -66,9 +68,10 @@ class V1BillingSubscription(object):
66
68
  'stripe_managed': 'stripeManaged'
67
69
  }
68
70
 
69
- def __init__(self, amount: 'int' =None, card_last4: 'str' =None, card_type: 'str' =None, features: 'list[V1BillingFeature]' =None, name: 'str' =None, period: 'str' =None, period_end: 'datetime' =None, seats: 'int' =None, status: 'str' =None, stripe_managed: 'bool' =None): # noqa: E501
71
+ def __init__(self, amount: 'int' =None, canceled_at: 'datetime' =None, card_last4: 'str' =None, card_type: 'str' =None, features: 'list[V1BillingFeature]' =None, name: 'str' =None, period: 'str' =None, period_end: 'datetime' =None, seats: 'int' =None, status: 'str' =None, stripe_managed: 'bool' =None): # noqa: E501
70
72
  """V1BillingSubscription - a model defined in Swagger""" # noqa: E501
71
73
  self._amount = None
74
+ self._canceled_at = None
72
75
  self._card_last4 = None
73
76
  self._card_type = None
74
77
  self._features = None
@@ -81,6 +84,8 @@ class V1BillingSubscription(object):
81
84
  self.discriminator = None
82
85
  if amount is not None:
83
86
  self.amount = amount
87
+ if canceled_at is not None:
88
+ self.canceled_at = canceled_at
84
89
  if card_last4 is not None:
85
90
  self.card_last4 = card_last4
86
91
  if card_type is not None:
@@ -121,6 +126,27 @@ class V1BillingSubscription(object):
121
126
 
122
127
  self._amount = amount
123
128
 
129
+ @property
130
+ def canceled_at(self) -> 'datetime':
131
+ """Gets the canceled_at of this V1BillingSubscription. # noqa: E501
132
+
133
+
134
+ :return: The canceled_at of this V1BillingSubscription. # noqa: E501
135
+ :rtype: datetime
136
+ """
137
+ return self._canceled_at
138
+
139
+ @canceled_at.setter
140
+ def canceled_at(self, canceled_at: 'datetime'):
141
+ """Sets the canceled_at of this V1BillingSubscription.
142
+
143
+
144
+ :param canceled_at: The canceled_at of this V1BillingSubscription. # noqa: E501
145
+ :type: datetime
146
+ """
147
+
148
+ self._canceled_at = canceled_at
149
+
124
150
  @property
125
151
  def card_last4(self) -> 'str':
126
152
  """Gets the card_last4 of this V1BillingSubscription. # noqa: E501
@@ -45,6 +45,8 @@ class V1BlogPost(object):
45
45
  'author_id': 'str',
46
46
  'category': 'str',
47
47
  'created_at': 'datetime',
48
+ 'customer_logo_url': 'str',
49
+ 'customer_name': 'str',
48
50
  'description': 'str',
49
51
  'id': 'str',
50
52
  'image_url': 'str',
@@ -59,6 +61,8 @@ class V1BlogPost(object):
59
61
  'author_id': 'authorId',
60
62
  'category': 'category',
61
63
  'created_at': 'createdAt',
64
+ 'customer_logo_url': 'customerLogoUrl',
65
+ 'customer_name': 'customerName',
62
66
  'description': 'description',
63
67
  'id': 'id',
64
68
  'image_url': 'imageUrl',
@@ -68,12 +72,14 @@ class V1BlogPost(object):
68
72
  'updated_at': 'updatedAt'
69
73
  }
70
74
 
71
- def __init__(self, author: 'V1Author' =None, author_id: 'str' =None, category: 'str' =None, created_at: 'datetime' =None, description: 'str' =None, id: 'str' =None, image_url: 'str' =None, lit_page: 'V1LitPage' =None, lit_page_id: 'str' =None, title: 'str' =None, updated_at: 'datetime' =None): # noqa: E501
75
+ def __init__(self, author: 'V1Author' =None, author_id: 'str' =None, category: 'str' =None, created_at: 'datetime' =None, customer_logo_url: 'str' =None, customer_name: 'str' =None, description: 'str' =None, id: 'str' =None, image_url: 'str' =None, lit_page: 'V1LitPage' =None, lit_page_id: 'str' =None, title: 'str' =None, updated_at: 'datetime' =None): # noqa: E501
72
76
  """V1BlogPost - a model defined in Swagger""" # noqa: E501
73
77
  self._author = None
74
78
  self._author_id = None
75
79
  self._category = None
76
80
  self._created_at = None
81
+ self._customer_logo_url = None
82
+ self._customer_name = None
77
83
  self._description = None
78
84
  self._id = None
79
85
  self._image_url = None
@@ -90,6 +96,10 @@ class V1BlogPost(object):
90
96
  self.category = category
91
97
  if created_at is not None:
92
98
  self.created_at = created_at
99
+ if customer_logo_url is not None:
100
+ self.customer_logo_url = customer_logo_url
101
+ if customer_name is not None:
102
+ self.customer_name = customer_name
93
103
  if description is not None:
94
104
  self.description = description
95
105
  if id is not None:
@@ -189,6 +199,48 @@ class V1BlogPost(object):
189
199
 
190
200
  self._created_at = created_at
191
201
 
202
+ @property
203
+ def customer_logo_url(self) -> 'str':
204
+ """Gets the customer_logo_url of this V1BlogPost. # noqa: E501
205
+
206
+
207
+ :return: The customer_logo_url of this V1BlogPost. # noqa: E501
208
+ :rtype: str
209
+ """
210
+ return self._customer_logo_url
211
+
212
+ @customer_logo_url.setter
213
+ def customer_logo_url(self, customer_logo_url: 'str'):
214
+ """Sets the customer_logo_url of this V1BlogPost.
215
+
216
+
217
+ :param customer_logo_url: The customer_logo_url of this V1BlogPost. # noqa: E501
218
+ :type: str
219
+ """
220
+
221
+ self._customer_logo_url = customer_logo_url
222
+
223
+ @property
224
+ def customer_name(self) -> 'str':
225
+ """Gets the customer_name of this V1BlogPost. # noqa: E501
226
+
227
+
228
+ :return: The customer_name of this V1BlogPost. # noqa: E501
229
+ :rtype: str
230
+ """
231
+ return self._customer_name
232
+
233
+ @customer_name.setter
234
+ def customer_name(self, customer_name: 'str'):
235
+ """Sets the customer_name of this V1BlogPost.
236
+
237
+
238
+ :param customer_name: The customer_name of this V1BlogPost. # noqa: E501
239
+ :type: str
240
+ """
241
+
242
+ self._customer_name = customer_name
243
+
192
244
  @property
193
245
  def description(self) -> 'str':
194
246
  """Gets the description of this V1BlogPost. # noqa: E501
@@ -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 V1CloudySettings(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
+ 'default_mode': 'str',
45
+ 'preferred_diff_viewer': 'str',
46
+ 'preferred_experts': 'list[str]',
47
+ 'preferred_models': 'list[str]',
48
+ 'user_id': 'str'
49
+ }
50
+
51
+ attribute_map = {
52
+ 'default_mode': 'defaultMode',
53
+ 'preferred_diff_viewer': 'preferredDiffViewer',
54
+ 'preferred_experts': 'preferredExperts',
55
+ 'preferred_models': 'preferredModels',
56
+ 'user_id': 'userId'
57
+ }
58
+
59
+ def __init__(self, default_mode: 'str' =None, preferred_diff_viewer: 'str' =None, preferred_experts: 'list[str]' =None, preferred_models: 'list[str]' =None, user_id: 'str' =None): # noqa: E501
60
+ """V1CloudySettings - a model defined in Swagger""" # noqa: E501
61
+ self._default_mode = None
62
+ self._preferred_diff_viewer = None
63
+ self._preferred_experts = None
64
+ self._preferred_models = None
65
+ self._user_id = None
66
+ self.discriminator = None
67
+ if default_mode is not None:
68
+ self.default_mode = default_mode
69
+ if preferred_diff_viewer is not None:
70
+ self.preferred_diff_viewer = preferred_diff_viewer
71
+ if preferred_experts is not None:
72
+ self.preferred_experts = preferred_experts
73
+ if preferred_models is not None:
74
+ self.preferred_models = preferred_models
75
+ if user_id is not None:
76
+ self.user_id = user_id
77
+
78
+ @property
79
+ def default_mode(self) -> 'str':
80
+ """Gets the default_mode of this V1CloudySettings. # noqa: E501
81
+
82
+
83
+ :return: The default_mode of this V1CloudySettings. # noqa: E501
84
+ :rtype: str
85
+ """
86
+ return self._default_mode
87
+
88
+ @default_mode.setter
89
+ def default_mode(self, default_mode: 'str'):
90
+ """Sets the default_mode of this V1CloudySettings.
91
+
92
+
93
+ :param default_mode: The default_mode of this V1CloudySettings. # noqa: E501
94
+ :type: str
95
+ """
96
+
97
+ self._default_mode = default_mode
98
+
99
+ @property
100
+ def preferred_diff_viewer(self) -> 'str':
101
+ """Gets the preferred_diff_viewer of this V1CloudySettings. # noqa: E501
102
+
103
+
104
+ :return: The preferred_diff_viewer of this V1CloudySettings. # noqa: E501
105
+ :rtype: str
106
+ """
107
+ return self._preferred_diff_viewer
108
+
109
+ @preferred_diff_viewer.setter
110
+ def preferred_diff_viewer(self, preferred_diff_viewer: 'str'):
111
+ """Sets the preferred_diff_viewer of this V1CloudySettings.
112
+
113
+
114
+ :param preferred_diff_viewer: The preferred_diff_viewer of this V1CloudySettings. # noqa: E501
115
+ :type: str
116
+ """
117
+
118
+ self._preferred_diff_viewer = preferred_diff_viewer
119
+
120
+ @property
121
+ def preferred_experts(self) -> 'list[str]':
122
+ """Gets the preferred_experts of this V1CloudySettings. # noqa: E501
123
+
124
+
125
+ :return: The preferred_experts of this V1CloudySettings. # noqa: E501
126
+ :rtype: list[str]
127
+ """
128
+ return self._preferred_experts
129
+
130
+ @preferred_experts.setter
131
+ def preferred_experts(self, preferred_experts: 'list[str]'):
132
+ """Sets the preferred_experts of this V1CloudySettings.
133
+
134
+
135
+ :param preferred_experts: The preferred_experts of this V1CloudySettings. # noqa: E501
136
+ :type: list[str]
137
+ """
138
+
139
+ self._preferred_experts = preferred_experts
140
+
141
+ @property
142
+ def preferred_models(self) -> 'list[str]':
143
+ """Gets the preferred_models of this V1CloudySettings. # noqa: E501
144
+
145
+
146
+ :return: The preferred_models of this V1CloudySettings. # noqa: E501
147
+ :rtype: list[str]
148
+ """
149
+ return self._preferred_models
150
+
151
+ @preferred_models.setter
152
+ def preferred_models(self, preferred_models: 'list[str]'):
153
+ """Sets the preferred_models of this V1CloudySettings.
154
+
155
+
156
+ :param preferred_models: The preferred_models of this V1CloudySettings. # noqa: E501
157
+ :type: list[str]
158
+ """
159
+
160
+ self._preferred_models = preferred_models
161
+
162
+ @property
163
+ def user_id(self) -> 'str':
164
+ """Gets the user_id of this V1CloudySettings. # noqa: E501
165
+
166
+
167
+ :return: The user_id of this V1CloudySettings. # 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 V1CloudySettings.
175
+
176
+
177
+ :param user_id: The user_id of this V1CloudySettings. # 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(V1CloudySettings, 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: 'V1CloudySettings') -> bool:
219
+ """Returns true if both objects are equal"""
220
+ if not isinstance(other, V1CloudySettings):
221
+ return False
222
+
223
+ return self.__dict__ == other.__dict__
224
+
225
+ def __ne__(self, other: 'V1CloudySettings') -> bool:
226
+ """Returns true if both objects are not equal"""
227
+ return not self == other
@@ -73,6 +73,7 @@ class V1ClusterSpec(object):
73
73
  'slurm_v1': 'V1SlurmV1',
74
74
  'tagging_options': 'V1ClusterTaggingOptions',
75
75
  'user_id': 'str',
76
+ 'vibe_coding_enabled': 'bool',
76
77
  'voltage_park_v1': 'V1VoltageParkDirectV1',
77
78
  'vultr_v1': 'V1VultrDirectV1'
78
79
  }
@@ -110,11 +111,12 @@ class V1ClusterSpec(object):
110
111
  'slurm_v1': 'slurmV1',
111
112
  'tagging_options': 'taggingOptions',
112
113
  'user_id': 'userId',
114
+ 'vibe_coding_enabled': 'vibeCodingEnabled',
113
115
  'voltage_park_v1': 'voltageParkV1',
114
116
  'vultr_v1': 'vultrV1'
115
117
  }
116
118
 
117
- def __init__(self, ai_pod_v1: 'V1AiPodV1' =None, auth_token: 'str' =None, available_accelerators: 'list[str]' =None, aws_v1: 'V1AWSDirectV1' =None, cloud_pricing_enabled: 'bool' =None, cloudflare_v1: 'V1CloudflareV1' =None, cluster_type: 'V1ClusterType' =None, compute_cluster_ids: 'list[str]' =None, deletion_options: 'V1ClusterDeletionOptions' =None, desired_state: 'V1ClusterState' =None, domain: 'str' =None, driver: 'V1CloudProvider' =None, freeze_accelerators: 'bool' =None, google_cloud_v1: 'V1GoogleCloudDirectV1' =None, insurer_disabled: 'bool' =None, kubernetes_v1: 'V1KubernetesDirectV1' =None, lambda_labs_v1: 'V1LambdaLabsDirectV1' =None, lock_overprovisioning: 'bool' =None, locked_zones: 'list[str]' =None, monitor_deletion_disabled: 'bool' =None, nebius_v1: 'V1NebiusDirectV1' =None, overprovisioning: 'list[V1InstanceOverprovisioningSpec]' =None, parent_cluster_id: 'str' =None, parent_cluster_type: 'str' =None, pause_automation: 'bool' =None, reservation_details: 'V1ReservationDetails' =None, reserved_capacity_provider: 'bool' =None, reserved_instances_only: 'bool' =None, security_options: 'V1ClusterSecurityOptions' =None, slurm_v1: 'V1SlurmV1' =None, tagging_options: 'V1ClusterTaggingOptions' =None, user_id: 'str' =None, voltage_park_v1: 'V1VoltageParkDirectV1' =None, vultr_v1: 'V1VultrDirectV1' =None): # noqa: E501
119
+ def __init__(self, ai_pod_v1: 'V1AiPodV1' =None, auth_token: 'str' =None, available_accelerators: 'list[str]' =None, aws_v1: 'V1AWSDirectV1' =None, cloud_pricing_enabled: 'bool' =None, cloudflare_v1: 'V1CloudflareV1' =None, cluster_type: 'V1ClusterType' =None, compute_cluster_ids: 'list[str]' =None, deletion_options: 'V1ClusterDeletionOptions' =None, desired_state: 'V1ClusterState' =None, domain: 'str' =None, driver: 'V1CloudProvider' =None, freeze_accelerators: 'bool' =None, google_cloud_v1: 'V1GoogleCloudDirectV1' =None, insurer_disabled: 'bool' =None, kubernetes_v1: 'V1KubernetesDirectV1' =None, lambda_labs_v1: 'V1LambdaLabsDirectV1' =None, lock_overprovisioning: 'bool' =None, locked_zones: 'list[str]' =None, monitor_deletion_disabled: 'bool' =None, nebius_v1: 'V1NebiusDirectV1' =None, overprovisioning: 'list[V1InstanceOverprovisioningSpec]' =None, parent_cluster_id: 'str' =None, parent_cluster_type: 'str' =None, pause_automation: 'bool' =None, reservation_details: 'V1ReservationDetails' =None, reserved_capacity_provider: 'bool' =None, reserved_instances_only: 'bool' =None, security_options: 'V1ClusterSecurityOptions' =None, slurm_v1: 'V1SlurmV1' =None, tagging_options: 'V1ClusterTaggingOptions' =None, user_id: 'str' =None, vibe_coding_enabled: 'bool' =None, voltage_park_v1: 'V1VoltageParkDirectV1' =None, vultr_v1: 'V1VultrDirectV1' =None): # noqa: E501
118
120
  """V1ClusterSpec - a model defined in Swagger""" # noqa: E501
119
121
  self._ai_pod_v1 = None
120
122
  self._auth_token = None
@@ -148,6 +150,7 @@ class V1ClusterSpec(object):
148
150
  self._slurm_v1 = None
149
151
  self._tagging_options = None
150
152
  self._user_id = None
153
+ self._vibe_coding_enabled = None
151
154
  self._voltage_park_v1 = None
152
155
  self._vultr_v1 = None
153
156
  self.discriminator = None
@@ -215,6 +218,8 @@ class V1ClusterSpec(object):
215
218
  self.tagging_options = tagging_options
216
219
  if user_id is not None:
217
220
  self.user_id = user_id
221
+ if vibe_coding_enabled is not None:
222
+ self.vibe_coding_enabled = vibe_coding_enabled
218
223
  if voltage_park_v1 is not None:
219
224
  self.voltage_park_v1 = voltage_park_v1
220
225
  if vultr_v1 is not None:
@@ -894,6 +899,27 @@ class V1ClusterSpec(object):
894
899
 
895
900
  self._user_id = user_id
896
901
 
902
+ @property
903
+ def vibe_coding_enabled(self) -> 'bool':
904
+ """Gets the vibe_coding_enabled of this V1ClusterSpec. # noqa: E501
905
+
906
+
907
+ :return: The vibe_coding_enabled of this V1ClusterSpec. # noqa: E501
908
+ :rtype: bool
909
+ """
910
+ return self._vibe_coding_enabled
911
+
912
+ @vibe_coding_enabled.setter
913
+ def vibe_coding_enabled(self, vibe_coding_enabled: 'bool'):
914
+ """Sets the vibe_coding_enabled of this V1ClusterSpec.
915
+
916
+
917
+ :param vibe_coding_enabled: The vibe_coding_enabled of this V1ClusterSpec. # noqa: E501
918
+ :type: bool
919
+ """
920
+
921
+ self._vibe_coding_enabled = vibe_coding_enabled
922
+
897
923
  @property
898
924
  def voltage_park_v1(self) -> 'V1VoltageParkDirectV1':
899
925
  """Gets the voltage_park_v1 of this V1ClusterSpec. # noqa: E501