lightning-sdk 2025.9.4__py3-none-any.whl → 2025.9.11__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 (43) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/llm_api.py +19 -0
  3. lightning_sdk/api/studio_api.py +25 -4
  4. lightning_sdk/lightning_cloud/login.py +60 -0
  5. lightning_sdk/lightning_cloud/openapi/__init__.py +17 -0
  6. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +744 -13
  7. lightning_sdk/lightning_cloud/openapi/api/projects_service_api.py +105 -0
  8. lightning_sdk/lightning_cloud/openapi/models/__init__.py +17 -0
  9. lightning_sdk/lightning_cloud/openapi/models/id_render_body.py +123 -0
  10. lightning_sdk/lightning_cloud/openapi/models/kubernetestemplates_id_body.py +227 -0
  11. lightning_sdk/lightning_cloud/openapi/models/metricsstream_create_body.py +27 -1
  12. lightning_sdk/lightning_cloud/openapi/models/project_id_kubernetestemplates_body.py +227 -0
  13. lightning_sdk/lightning_cloud/openapi/models/project_tab_management_messages.py +123 -0
  14. lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +27 -1
  15. lightning_sdk/lightning_cloud/openapi/models/v1_ai_pod_v1.py +53 -1
  16. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +27 -1
  17. lightning_sdk/lightning_cloud/openapi/models/v1_delete_kubernetes_template_response.py +97 -0
  18. lightning_sdk/lightning_cloud/openapi/models/v1_firewall_rule.py +175 -0
  19. lightning_sdk/lightning_cloud/openapi/models/v1_incident_event.py +565 -0
  20. lightning_sdk/lightning_cloud/openapi/models/v1_incident_severity.py +105 -0
  21. lightning_sdk/lightning_cloud/openapi/models/v1_incident_type.py +106 -0
  22. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_indexes.py +149 -0
  23. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_template.py +383 -0
  24. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_template_property.py +227 -0
  25. lightning_sdk/lightning_cloud/openapi/models/v1_list_incident_events_response.py +123 -0
  26. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_templates_response.py +123 -0
  27. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +27 -1
  28. lightning_sdk/lightning_cloud/openapi/models/v1_project.py +27 -1
  29. lightning_sdk/lightning_cloud/openapi/models/v1_project_tab.py +149 -0
  30. lightning_sdk/lightning_cloud/openapi/models/v1_quote_annual_upsell_response.py +29 -3
  31. lightning_sdk/lightning_cloud/openapi/models/v1_render_kubernetes_template_response.py +123 -0
  32. lightning_sdk/lightning_cloud/openapi/models/v1_secret_type.py +1 -0
  33. lightning_sdk/lightning_cloud/openapi/models/v1_update_project_tab_order_response.py +123 -0
  34. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +154 -102
  35. lightning_sdk/llm/llm.py +91 -7
  36. lightning_sdk/llm/public_assistants.py +2 -2
  37. lightning_sdk/studio.py +30 -3
  38. {lightning_sdk-2025.9.4.dist-info → lightning_sdk-2025.9.11.dist-info}/METADATA +1 -1
  39. {lightning_sdk-2025.9.4.dist-info → lightning_sdk-2025.9.11.dist-info}/RECORD +43 -26
  40. {lightning_sdk-2025.9.4.dist-info → lightning_sdk-2025.9.11.dist-info}/entry_points.txt +1 -0
  41. {lightning_sdk-2025.9.4.dist-info → lightning_sdk-2025.9.11.dist-info}/LICENSE +0 -0
  42. {lightning_sdk-2025.9.4.dist-info → lightning_sdk-2025.9.11.dist-info}/WHEEL +0 -0
  43. {lightning_sdk-2025.9.4.dist-info → lightning_sdk-2025.9.11.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,149 @@
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 V1ProjectTab(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
+ 'is_enabled': 'bool',
45
+ 'slug': 'str'
46
+ }
47
+
48
+ attribute_map = {
49
+ 'is_enabled': 'isEnabled',
50
+ 'slug': 'slug'
51
+ }
52
+
53
+ def __init__(self, is_enabled: 'bool' =None, slug: 'str' =None): # noqa: E501
54
+ """V1ProjectTab - a model defined in Swagger""" # noqa: E501
55
+ self._is_enabled = None
56
+ self._slug = None
57
+ self.discriminator = None
58
+ if is_enabled is not None:
59
+ self.is_enabled = is_enabled
60
+ if slug is not None:
61
+ self.slug = slug
62
+
63
+ @property
64
+ def is_enabled(self) -> 'bool':
65
+ """Gets the is_enabled of this V1ProjectTab. # noqa: E501
66
+
67
+
68
+ :return: The is_enabled of this V1ProjectTab. # noqa: E501
69
+ :rtype: bool
70
+ """
71
+ return self._is_enabled
72
+
73
+ @is_enabled.setter
74
+ def is_enabled(self, is_enabled: 'bool'):
75
+ """Sets the is_enabled of this V1ProjectTab.
76
+
77
+
78
+ :param is_enabled: The is_enabled of this V1ProjectTab. # noqa: E501
79
+ :type: bool
80
+ """
81
+
82
+ self._is_enabled = is_enabled
83
+
84
+ @property
85
+ def slug(self) -> 'str':
86
+ """Gets the slug of this V1ProjectTab. # noqa: E501
87
+
88
+
89
+ :return: The slug of this V1ProjectTab. # noqa: E501
90
+ :rtype: str
91
+ """
92
+ return self._slug
93
+
94
+ @slug.setter
95
+ def slug(self, slug: 'str'):
96
+ """Sets the slug of this V1ProjectTab.
97
+
98
+
99
+ :param slug: The slug of this V1ProjectTab. # noqa: E501
100
+ :type: str
101
+ """
102
+
103
+ self._slug = slug
104
+
105
+ def to_dict(self) -> dict:
106
+ """Returns the model properties as a dict"""
107
+ result = {}
108
+
109
+ for attr, _ in six.iteritems(self.swagger_types):
110
+ value = getattr(self, attr)
111
+ if isinstance(value, list):
112
+ result[attr] = list(map(
113
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
114
+ value
115
+ ))
116
+ elif hasattr(value, "to_dict"):
117
+ result[attr] = value.to_dict()
118
+ elif isinstance(value, dict):
119
+ result[attr] = dict(map(
120
+ lambda item: (item[0], item[1].to_dict())
121
+ if hasattr(item[1], "to_dict") else item,
122
+ value.items()
123
+ ))
124
+ else:
125
+ result[attr] = value
126
+ if issubclass(V1ProjectTab, dict):
127
+ for key, value in self.items():
128
+ result[key] = value
129
+
130
+ return result
131
+
132
+ def to_str(self) -> str:
133
+ """Returns the string representation of the model"""
134
+ return pprint.pformat(self.to_dict())
135
+
136
+ def __repr__(self) -> str:
137
+ """For `print` and `pprint`"""
138
+ return self.to_str()
139
+
140
+ def __eq__(self, other: 'V1ProjectTab') -> bool:
141
+ """Returns true if both objects are equal"""
142
+ if not isinstance(other, V1ProjectTab):
143
+ return False
144
+
145
+ return self.__dict__ == other.__dict__
146
+
147
+ def __ne__(self, other: 'V1ProjectTab') -> bool:
148
+ """Returns true if both objects are not equal"""
149
+ return not self == other
@@ -44,22 +44,25 @@ class V1QuoteAnnualUpsellResponse(object):
44
44
  'academic': 'bool',
45
45
  'additional_months': 'int',
46
46
  'annual_amount': 'int',
47
- 'discounted_amount': 'int'
47
+ 'discounted_amount': 'int',
48
+ 'included_credits': 'int'
48
49
  }
49
50
 
50
51
  attribute_map = {
51
52
  'academic': 'academic',
52
53
  'additional_months': 'additionalMonths',
53
54
  'annual_amount': 'annualAmount',
54
- 'discounted_amount': 'discountedAmount'
55
+ 'discounted_amount': 'discountedAmount',
56
+ 'included_credits': 'includedCredits'
55
57
  }
56
58
 
57
- def __init__(self, academic: 'bool' =None, additional_months: 'int' =None, annual_amount: 'int' =None, discounted_amount: 'int' =None): # noqa: E501
59
+ def __init__(self, academic: 'bool' =None, additional_months: 'int' =None, annual_amount: 'int' =None, discounted_amount: 'int' =None, included_credits: 'int' =None): # noqa: E501
58
60
  """V1QuoteAnnualUpsellResponse - a model defined in Swagger""" # noqa: E501
59
61
  self._academic = None
60
62
  self._additional_months = None
61
63
  self._annual_amount = None
62
64
  self._discounted_amount = None
65
+ self._included_credits = None
63
66
  self.discriminator = None
64
67
  if academic is not None:
65
68
  self.academic = academic
@@ -69,6 +72,8 @@ class V1QuoteAnnualUpsellResponse(object):
69
72
  self.annual_amount = annual_amount
70
73
  if discounted_amount is not None:
71
74
  self.discounted_amount = discounted_amount
75
+ if included_credits is not None:
76
+ self.included_credits = included_credits
72
77
 
73
78
  @property
74
79
  def academic(self) -> 'bool':
@@ -154,6 +159,27 @@ class V1QuoteAnnualUpsellResponse(object):
154
159
 
155
160
  self._discounted_amount = discounted_amount
156
161
 
162
+ @property
163
+ def included_credits(self) -> 'int':
164
+ """Gets the included_credits of this V1QuoteAnnualUpsellResponse. # noqa: E501
165
+
166
+
167
+ :return: The included_credits of this V1QuoteAnnualUpsellResponse. # noqa: E501
168
+ :rtype: int
169
+ """
170
+ return self._included_credits
171
+
172
+ @included_credits.setter
173
+ def included_credits(self, included_credits: 'int'):
174
+ """Sets the included_credits of this V1QuoteAnnualUpsellResponse.
175
+
176
+
177
+ :param included_credits: The included_credits of this V1QuoteAnnualUpsellResponse. # noqa: E501
178
+ :type: int
179
+ """
180
+
181
+ self._included_credits = included_credits
182
+
157
183
  def to_dict(self) -> dict:
158
184
  """Returns the model properties as a dict"""
159
185
  result = {}
@@ -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 V1RenderKubernetesTemplateResponse(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
+ 'rendered_template': 'str'
45
+ }
46
+
47
+ attribute_map = {
48
+ 'rendered_template': 'renderedTemplate'
49
+ }
50
+
51
+ def __init__(self, rendered_template: 'str' =None): # noqa: E501
52
+ """V1RenderKubernetesTemplateResponse - a model defined in Swagger""" # noqa: E501
53
+ self._rendered_template = None
54
+ self.discriminator = None
55
+ if rendered_template is not None:
56
+ self.rendered_template = rendered_template
57
+
58
+ @property
59
+ def rendered_template(self) -> 'str':
60
+ """Gets the rendered_template of this V1RenderKubernetesTemplateResponse. # noqa: E501
61
+
62
+
63
+ :return: The rendered_template of this V1RenderKubernetesTemplateResponse. # noqa: E501
64
+ :rtype: str
65
+ """
66
+ return self._rendered_template
67
+
68
+ @rendered_template.setter
69
+ def rendered_template(self, rendered_template: 'str'):
70
+ """Sets the rendered_template of this V1RenderKubernetesTemplateResponse.
71
+
72
+
73
+ :param rendered_template: The rendered_template of this V1RenderKubernetesTemplateResponse. # noqa: E501
74
+ :type: str
75
+ """
76
+
77
+ self._rendered_template = rendered_template
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(V1RenderKubernetesTemplateResponse, 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: 'V1RenderKubernetesTemplateResponse') -> bool:
115
+ """Returns true if both objects are equal"""
116
+ if not isinstance(other, V1RenderKubernetesTemplateResponse):
117
+ return False
118
+
119
+ return self.__dict__ == other.__dict__
120
+
121
+ def __ne__(self, other: 'V1RenderKubernetesTemplateResponse') -> bool:
122
+ """Returns true if both objects are not equal"""
123
+ return not self == other
@@ -42,6 +42,7 @@ class V1SecretType(object):
42
42
  GCP_CREDENTIALS = "SECRET_TYPE_GCP_CREDENTIALS"
43
43
  SNOWFLAKE_CREDENTIALS = "SECRET_TYPE_SNOWFLAKE_CREDENTIALS"
44
44
  R2_CREDENTIALS = "SECRET_TYPE_R2_CREDENTIALS"
45
+ ACCESS_CREDENTIALS = "SECRET_TYPE_ACCESS_CREDENTIALS"
45
46
  """
46
47
  Attributes:
47
48
  swagger_types (dict): The key is attribute name
@@ -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 V1UpdateProjectTabOrderResponse(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
+ 'tabs': 'list[V1ProjectTab]'
45
+ }
46
+
47
+ attribute_map = {
48
+ 'tabs': 'tabs'
49
+ }
50
+
51
+ def __init__(self, tabs: 'list[V1ProjectTab]' =None): # noqa: E501
52
+ """V1UpdateProjectTabOrderResponse - a model defined in Swagger""" # noqa: E501
53
+ self._tabs = None
54
+ self.discriminator = None
55
+ if tabs is not None:
56
+ self.tabs = tabs
57
+
58
+ @property
59
+ def tabs(self) -> 'list[V1ProjectTab]':
60
+ """Gets the tabs of this V1UpdateProjectTabOrderResponse. # noqa: E501
61
+
62
+
63
+ :return: The tabs of this V1UpdateProjectTabOrderResponse. # noqa: E501
64
+ :rtype: list[V1ProjectTab]
65
+ """
66
+ return self._tabs
67
+
68
+ @tabs.setter
69
+ def tabs(self, tabs: 'list[V1ProjectTab]'):
70
+ """Sets the tabs of this V1UpdateProjectTabOrderResponse.
71
+
72
+
73
+ :param tabs: The tabs of this V1UpdateProjectTabOrderResponse. # noqa: E501
74
+ :type: list[V1ProjectTab]
75
+ """
76
+
77
+ self._tabs = tabs
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(V1UpdateProjectTabOrderResponse, 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: 'V1UpdateProjectTabOrderResponse') -> bool:
115
+ """Returns true if both objects are equal"""
116
+ if not isinstance(other, V1UpdateProjectTabOrderResponse):
117
+ return False
118
+
119
+ return self.__dict__ == other.__dict__
120
+
121
+ def __ne__(self, other: 'V1UpdateProjectTabOrderResponse') -> bool:
122
+ """Returns true if both objects are not equal"""
123
+ return not self == other