lightning-sdk 2025.9.2__py3-none-any.whl → 2025.9.10__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 (49) 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/openapi/__init__.py +19 -0
  5. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +105 -0
  6. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +101 -0
  7. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +744 -13
  8. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +4 -4
  9. lightning_sdk/lightning_cloud/openapi/models/__init__.py +19 -0
  10. lightning_sdk/lightning_cloud/openapi/models/cluster_id_metrics_body.py +27 -1
  11. lightning_sdk/lightning_cloud/openapi/models/id_render_body.py +123 -0
  12. lightning_sdk/lightning_cloud/openapi/models/kubernetestemplates_id_body.py +227 -0
  13. lightning_sdk/lightning_cloud/openapi/models/metricsstream_create_body.py +27 -1
  14. lightning_sdk/lightning_cloud/openapi/models/models_model_id_body.py +109 -31
  15. lightning_sdk/lightning_cloud/openapi/models/models_model_id_body1.py +149 -0
  16. lightning_sdk/lightning_cloud/openapi/models/project_id_kubernetestemplates_body.py +227 -0
  17. lightning_sdk/lightning_cloud/openapi/models/v1_ai_pod_v1.py +53 -1
  18. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +27 -1
  19. lightning_sdk/lightning_cloud/openapi/models/v1_create_model_metrics_response.py +97 -0
  20. lightning_sdk/lightning_cloud/openapi/models/v1_delete_kubernetes_template_response.py +97 -0
  21. lightning_sdk/lightning_cloud/openapi/models/v1_firewall_rule.py +175 -0
  22. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_required_balance_status_response.py +6 -6
  23. lightning_sdk/lightning_cloud/openapi/models/v1_get_temp_bucket_credentials_response.py +201 -0
  24. lightning_sdk/lightning_cloud/openapi/models/v1_group_node_metrics.py +1215 -0
  25. lightning_sdk/lightning_cloud/openapi/models/v1_incident_event.py +565 -0
  26. lightning_sdk/lightning_cloud/openapi/models/v1_incident_severity.py +105 -0
  27. lightning_sdk/lightning_cloud/openapi/models/v1_incident_type.py +105 -0
  28. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_indexes.py +149 -0
  29. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_template.py +383 -0
  30. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_template_property.py +227 -0
  31. lightning_sdk/lightning_cloud/openapi/models/v1_list_incident_events_response.py +123 -0
  32. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_templates_response.py +123 -0
  33. lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_response.py +27 -1
  34. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +27 -1
  35. lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +81 -3
  36. lightning_sdk/lightning_cloud/openapi/models/v1_quote_annual_upsell_response.py +29 -3
  37. lightning_sdk/lightning_cloud/openapi/models/v1_render_kubernetes_template_response.py +123 -0
  38. lightning_sdk/lightning_cloud/openapi/models/v1_required_balance_reason.py +107 -0
  39. lightning_sdk/lightning_cloud/openapi/models/v1_secret_type.py +1 -0
  40. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +154 -128
  41. lightning_sdk/llm/llm.py +82 -7
  42. lightning_sdk/llm/public_assistants.py +2 -2
  43. lightning_sdk/studio.py +30 -3
  44. {lightning_sdk-2025.9.2.dist-info → lightning_sdk-2025.9.10.dist-info}/METADATA +1 -1
  45. {lightning_sdk-2025.9.2.dist-info → lightning_sdk-2025.9.10.dist-info}/RECORD +49 -30
  46. {lightning_sdk-2025.9.2.dist-info → lightning_sdk-2025.9.10.dist-info}/entry_points.txt +1 -0
  47. {lightning_sdk-2025.9.2.dist-info → lightning_sdk-2025.9.10.dist-info}/LICENSE +0 -0
  48. {lightning_sdk-2025.9.2.dist-info → lightning_sdk-2025.9.10.dist-info}/WHEEL +0 -0
  49. {lightning_sdk-2025.9.2.dist-info → lightning_sdk-2025.9.10.dist-info}/top_level.txt +0 -0
@@ -49,10 +49,12 @@ class V1NodeMetrics(object):
49
49
  'mem_total': 'str',
50
50
  'mem_util': 'float',
51
51
  'node_name': 'str',
52
+ 'num_unschedulable_gpus': 'int',
52
53
  'nvlink_rx_gib': 'dict(str, float)',
53
54
  'nvlink_tx_gib': 'dict(str, float)',
54
55
  'pcie_rx_gib': 'dict(str, float)',
55
56
  'pcie_tx_gib': 'dict(str, float)',
57
+ 'per_gpu_errors': 'dict(str, int)',
56
58
  'per_gpu_mem_free': 'dict(str, int)',
57
59
  'per_gpu_mem_used': 'dict(str, int)',
58
60
  'per_gpu_power_usage_watts': 'dict(str, int)',
@@ -60,7 +62,8 @@ class V1NodeMetrics(object):
60
62
  'per_gpu_sm_occupancy': 'dict(str, float)',
61
63
  'per_gpu_temperature_c': 'dict(str, int)',
62
64
  'per_gpu_util': 'dict(str, float)',
63
- 'timestamp': 'datetime'
65
+ 'timestamp': 'datetime',
66
+ 'unschedulable': 'bool'
64
67
  }
65
68
 
66
69
  attribute_map = {
@@ -72,10 +75,12 @@ class V1NodeMetrics(object):
72
75
  'mem_total': 'memTotal',
73
76
  'mem_util': 'memUtil',
74
77
  'node_name': 'nodeName',
78
+ 'num_unschedulable_gpus': 'numUnschedulableGpus',
75
79
  'nvlink_rx_gib': 'nvlinkRxGib',
76
80
  'nvlink_tx_gib': 'nvlinkTxGib',
77
81
  'pcie_rx_gib': 'pcieRxGib',
78
82
  'pcie_tx_gib': 'pcieTxGib',
83
+ 'per_gpu_errors': 'perGpuErrors',
79
84
  'per_gpu_mem_free': 'perGpuMemFree',
80
85
  'per_gpu_mem_used': 'perGpuMemUsed',
81
86
  'per_gpu_power_usage_watts': 'perGpuPowerUsageWatts',
@@ -83,10 +88,11 @@ class V1NodeMetrics(object):
83
88
  'per_gpu_sm_occupancy': 'perGpuSmOccupancy',
84
89
  'per_gpu_temperature_c': 'perGpuTemperatureC',
85
90
  'per_gpu_util': 'perGpuUtil',
86
- 'timestamp': 'timestamp'
91
+ 'timestamp': 'timestamp',
92
+ 'unschedulable': 'unschedulable'
87
93
  }
88
94
 
89
- def __init__(self, cpu_capacity_cores: 'float' =None, cpu_util: 'float' =None, filesystem: 'dict(str, V1FilesystemMetrics)' =None, max_gpu_temp_recorded: 'float' =None, max_power_per_gpu: 'float' =None, mem_total: 'str' =None, mem_util: 'float' =None, node_name: 'str' =None, nvlink_rx_gib: 'dict(str, float)' =None, nvlink_tx_gib: 'dict(str, float)' =None, pcie_rx_gib: 'dict(str, float)' =None, pcie_tx_gib: 'dict(str, float)' =None, per_gpu_mem_free: 'dict(str, int)' =None, per_gpu_mem_used: 'dict(str, int)' =None, per_gpu_power_usage_watts: 'dict(str, int)' =None, per_gpu_sm_active: 'dict(str, float)' =None, per_gpu_sm_occupancy: 'dict(str, float)' =None, per_gpu_temperature_c: 'dict(str, int)' =None, per_gpu_util: 'dict(str, float)' =None, timestamp: 'datetime' =None): # noqa: E501
95
+ def __init__(self, cpu_capacity_cores: 'float' =None, cpu_util: 'float' =None, filesystem: 'dict(str, V1FilesystemMetrics)' =None, max_gpu_temp_recorded: 'float' =None, max_power_per_gpu: 'float' =None, mem_total: 'str' =None, mem_util: 'float' =None, node_name: 'str' =None, num_unschedulable_gpus: 'int' =None, nvlink_rx_gib: 'dict(str, float)' =None, nvlink_tx_gib: 'dict(str, float)' =None, pcie_rx_gib: 'dict(str, float)' =None, pcie_tx_gib: 'dict(str, float)' =None, per_gpu_errors: 'dict(str, int)' =None, per_gpu_mem_free: 'dict(str, int)' =None, per_gpu_mem_used: 'dict(str, int)' =None, per_gpu_power_usage_watts: 'dict(str, int)' =None, per_gpu_sm_active: 'dict(str, float)' =None, per_gpu_sm_occupancy: 'dict(str, float)' =None, per_gpu_temperature_c: 'dict(str, int)' =None, per_gpu_util: 'dict(str, float)' =None, timestamp: 'datetime' =None, unschedulable: 'bool' =None): # noqa: E501
90
96
  """V1NodeMetrics - a model defined in Swagger""" # noqa: E501
91
97
  self._cpu_capacity_cores = None
92
98
  self._cpu_util = None
@@ -96,10 +102,12 @@ class V1NodeMetrics(object):
96
102
  self._mem_total = None
97
103
  self._mem_util = None
98
104
  self._node_name = None
105
+ self._num_unschedulable_gpus = None
99
106
  self._nvlink_rx_gib = None
100
107
  self._nvlink_tx_gib = None
101
108
  self._pcie_rx_gib = None
102
109
  self._pcie_tx_gib = None
110
+ self._per_gpu_errors = None
103
111
  self._per_gpu_mem_free = None
104
112
  self._per_gpu_mem_used = None
105
113
  self._per_gpu_power_usage_watts = None
@@ -108,6 +116,7 @@ class V1NodeMetrics(object):
108
116
  self._per_gpu_temperature_c = None
109
117
  self._per_gpu_util = None
110
118
  self._timestamp = None
119
+ self._unschedulable = None
111
120
  self.discriminator = None
112
121
  if cpu_capacity_cores is not None:
113
122
  self.cpu_capacity_cores = cpu_capacity_cores
@@ -125,6 +134,8 @@ class V1NodeMetrics(object):
125
134
  self.mem_util = mem_util
126
135
  if node_name is not None:
127
136
  self.node_name = node_name
137
+ if num_unschedulable_gpus is not None:
138
+ self.num_unschedulable_gpus = num_unschedulable_gpus
128
139
  if nvlink_rx_gib is not None:
129
140
  self.nvlink_rx_gib = nvlink_rx_gib
130
141
  if nvlink_tx_gib is not None:
@@ -133,6 +144,8 @@ class V1NodeMetrics(object):
133
144
  self.pcie_rx_gib = pcie_rx_gib
134
145
  if pcie_tx_gib is not None:
135
146
  self.pcie_tx_gib = pcie_tx_gib
147
+ if per_gpu_errors is not None:
148
+ self.per_gpu_errors = per_gpu_errors
136
149
  if per_gpu_mem_free is not None:
137
150
  self.per_gpu_mem_free = per_gpu_mem_free
138
151
  if per_gpu_mem_used is not None:
@@ -149,6 +162,8 @@ class V1NodeMetrics(object):
149
162
  self.per_gpu_util = per_gpu_util
150
163
  if timestamp is not None:
151
164
  self.timestamp = timestamp
165
+ if unschedulable is not None:
166
+ self.unschedulable = unschedulable
152
167
 
153
168
  @property
154
169
  def cpu_capacity_cores(self) -> 'float':
@@ -318,6 +333,27 @@ class V1NodeMetrics(object):
318
333
 
319
334
  self._node_name = node_name
320
335
 
336
+ @property
337
+ def num_unschedulable_gpus(self) -> 'int':
338
+ """Gets the num_unschedulable_gpus of this V1NodeMetrics. # noqa: E501
339
+
340
+
341
+ :return: The num_unschedulable_gpus of this V1NodeMetrics. # noqa: E501
342
+ :rtype: int
343
+ """
344
+ return self._num_unschedulable_gpus
345
+
346
+ @num_unschedulable_gpus.setter
347
+ def num_unschedulable_gpus(self, num_unschedulable_gpus: 'int'):
348
+ """Sets the num_unschedulable_gpus of this V1NodeMetrics.
349
+
350
+
351
+ :param num_unschedulable_gpus: The num_unschedulable_gpus of this V1NodeMetrics. # noqa: E501
352
+ :type: int
353
+ """
354
+
355
+ self._num_unschedulable_gpus = num_unschedulable_gpus
356
+
321
357
  @property
322
358
  def nvlink_rx_gib(self) -> 'dict(str, float)':
323
359
  """Gets the nvlink_rx_gib of this V1NodeMetrics. # noqa: E501
@@ -402,6 +438,27 @@ class V1NodeMetrics(object):
402
438
 
403
439
  self._pcie_tx_gib = pcie_tx_gib
404
440
 
441
+ @property
442
+ def per_gpu_errors(self) -> 'dict(str, int)':
443
+ """Gets the per_gpu_errors of this V1NodeMetrics. # noqa: E501
444
+
445
+
446
+ :return: The per_gpu_errors of this V1NodeMetrics. # noqa: E501
447
+ :rtype: dict(str, int)
448
+ """
449
+ return self._per_gpu_errors
450
+
451
+ @per_gpu_errors.setter
452
+ def per_gpu_errors(self, per_gpu_errors: 'dict(str, int)'):
453
+ """Sets the per_gpu_errors of this V1NodeMetrics.
454
+
455
+
456
+ :param per_gpu_errors: The per_gpu_errors of this V1NodeMetrics. # noqa: E501
457
+ :type: dict(str, int)
458
+ """
459
+
460
+ self._per_gpu_errors = per_gpu_errors
461
+
405
462
  @property
406
463
  def per_gpu_mem_free(self) -> 'dict(str, int)':
407
464
  """Gets the per_gpu_mem_free of this V1NodeMetrics. # noqa: E501
@@ -570,6 +627,27 @@ class V1NodeMetrics(object):
570
627
 
571
628
  self._timestamp = timestamp
572
629
 
630
+ @property
631
+ def unschedulable(self) -> 'bool':
632
+ """Gets the unschedulable of this V1NodeMetrics. # noqa: E501
633
+
634
+
635
+ :return: The unschedulable of this V1NodeMetrics. # noqa: E501
636
+ :rtype: bool
637
+ """
638
+ return self._unschedulable
639
+
640
+ @unschedulable.setter
641
+ def unschedulable(self, unschedulable: 'bool'):
642
+ """Sets the unschedulable of this V1NodeMetrics.
643
+
644
+
645
+ :param unschedulable: The unschedulable of this V1NodeMetrics. # noqa: E501
646
+ :type: bool
647
+ """
648
+
649
+ self._unschedulable = unschedulable
650
+
573
651
  def to_dict(self) -> dict:
574
652
  """Returns the model properties as a dict"""
575
653
  result = {}
@@ -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
@@ -0,0 +1,107 @@
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 V1RequiredBalanceReason(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
+ """
38
+ allowed enum values
39
+ """
40
+ UNKNOWN = "REQUIRED_BALANCE_REASON_UNKNOWN"
41
+ SUFFICIENT_FREE_STUDIO = "REQUIRED_BALANCE_REASON_SUFFICIENT_FREE_STUDIO"
42
+ SUFFICIENT_CREDITS = "REQUIRED_BALANCE_REASON_SUFFICIENT_CREDITS"
43
+ INSUFFICIENT_FREE_STUDIO_RUNNING = "REQUIRED_BALANCE_REASON_INSUFFICIENT_FREE_STUDIO_RUNNING"
44
+ INSUFFICIENT_CREDITS = "REQUIRED_BALANCE_REASON_INSUFFICIENT_CREDITS"
45
+ INSUFFICIENT_CREDITS_STORAGE = "REQUIRED_BALANCE_REASON_INSUFFICIENT_CREDITS_STORAGE"
46
+ """
47
+ Attributes:
48
+ swagger_types (dict): The key is attribute name
49
+ and the value is attribute type.
50
+ attribute_map (dict): The key is attribute name
51
+ and the value is json key in definition.
52
+ """
53
+ swagger_types = {
54
+ }
55
+
56
+ attribute_map = {
57
+ }
58
+
59
+ def __init__(self): # noqa: E501
60
+ """V1RequiredBalanceReason - a model defined in Swagger""" # noqa: E501
61
+ self.discriminator = None
62
+
63
+ def to_dict(self) -> dict:
64
+ """Returns the model properties as a dict"""
65
+ result = {}
66
+
67
+ for attr, _ in six.iteritems(self.swagger_types):
68
+ value = getattr(self, attr)
69
+ if isinstance(value, list):
70
+ result[attr] = list(map(
71
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
72
+ value
73
+ ))
74
+ elif hasattr(value, "to_dict"):
75
+ result[attr] = value.to_dict()
76
+ elif isinstance(value, dict):
77
+ result[attr] = dict(map(
78
+ lambda item: (item[0], item[1].to_dict())
79
+ if hasattr(item[1], "to_dict") else item,
80
+ value.items()
81
+ ))
82
+ else:
83
+ result[attr] = value
84
+ if issubclass(V1RequiredBalanceReason, dict):
85
+ for key, value in self.items():
86
+ result[key] = value
87
+
88
+ return result
89
+
90
+ def to_str(self) -> str:
91
+ """Returns the string representation of the model"""
92
+ return pprint.pformat(self.to_dict())
93
+
94
+ def __repr__(self) -> str:
95
+ """For `print` and `pprint`"""
96
+ return self.to_str()
97
+
98
+ def __eq__(self, other: 'V1RequiredBalanceReason') -> bool:
99
+ """Returns true if both objects are equal"""
100
+ if not isinstance(other, V1RequiredBalanceReason):
101
+ return False
102
+
103
+ return self.__dict__ == other.__dict__
104
+
105
+ def __ne__(self, other: 'V1RequiredBalanceReason') -> bool:
106
+ """Returns true if both objects are not equal"""
107
+ 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