lightning-sdk 2025.10.14__py3-none-any.whl → 2025.10.23__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 (76) hide show
  1. lightning_sdk/__init__.py +6 -3
  2. lightning_sdk/api/base_studio_api.py +13 -9
  3. lightning_sdk/api/job_api.py +4 -1
  4. lightning_sdk/api/license_api.py +26 -59
  5. lightning_sdk/api/studio_api.py +7 -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 +11 -34
  9. lightning_sdk/cli/groups.py +7 -0
  10. lightning_sdk/cli/license/__init__.py +14 -0
  11. lightning_sdk/cli/license/get.py +15 -0
  12. lightning_sdk/cli/license/list.py +45 -0
  13. lightning_sdk/cli/license/set.py +13 -0
  14. lightning_sdk/cli/studio/connect.py +42 -92
  15. lightning_sdk/cli/studio/create.py +23 -1
  16. lightning_sdk/cli/studio/start.py +12 -2
  17. lightning_sdk/cli/utils/get_base_studio.py +24 -0
  18. lightning_sdk/cli/utils/handle_machine_and_gpus_args.py +69 -0
  19. lightning_sdk/cli/utils/logging.py +121 -0
  20. lightning_sdk/cli/utils/ssh_connection.py +1 -1
  21. lightning_sdk/constants.py +1 -0
  22. lightning_sdk/helpers.py +53 -34
  23. lightning_sdk/job/base.py +7 -0
  24. lightning_sdk/job/job.py +8 -0
  25. lightning_sdk/job/v1.py +3 -0
  26. lightning_sdk/job/v2.py +4 -0
  27. lightning_sdk/lightning_cloud/login.py +260 -10
  28. lightning_sdk/lightning_cloud/openapi/__init__.py +16 -3
  29. lightning_sdk/lightning_cloud/openapi/api/auth_service_api.py +279 -0
  30. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +117 -0
  31. lightning_sdk/lightning_cloud/openapi/api/product_license_service_api.py +108 -108
  32. lightning_sdk/lightning_cloud/openapi/models/__init__.py +16 -3
  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/externalv1_cloud_space_instance_status.py +27 -1
  35. lightning_sdk/lightning_cloud/openapi/models/id_fork_body1.py +27 -1
  36. lightning_sdk/lightning_cloud/openapi/models/license_key_validate_body.py +123 -0
  37. lightning_sdk/lightning_cloud/openapi/models/update1.py +27 -1
  38. lightning_sdk/lightning_cloud/openapi/models/v1_create_license_request.py +175 -0
  39. lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +27 -1
  40. lightning_sdk/lightning_cloud/openapi/models/v1_delete_license_response.py +97 -0
  41. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -1
  42. lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +27 -1
  43. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_metric.py +201 -0
  44. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_transfer_estimate_response.py +29 -3
  45. lightning_sdk/lightning_cloud/openapi/models/v1_incident.py +27 -1
  46. lightning_sdk/lightning_cloud/openapi/models/v1_incident_detail.py +149 -0
  47. lightning_sdk/lightning_cloud/openapi/models/v1_incident_event.py +27 -1
  48. lightning_sdk/lightning_cloud/openapi/models/v1_license.py +227 -0
  49. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_metrics_response.py +123 -0
  50. lightning_sdk/lightning_cloud/openapi/models/{v1_list_product_licenses_response.py → v1_list_license_response.py} +16 -16
  51. lightning_sdk/lightning_cloud/openapi/models/v1_list_platform_notifications_response.py +123 -0
  52. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +27 -1
  53. lightning_sdk/lightning_cloud/openapi/models/v1_platform_notification.py +279 -0
  54. lightning_sdk/lightning_cloud/openapi/models/v1_reset_api_key_request.py +97 -0
  55. lightning_sdk/lightning_cloud/openapi/models/v1_reset_api_key_response.py +123 -0
  56. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py +53 -1
  57. lightning_sdk/lightning_cloud/openapi/models/v1_token_login_request.py +123 -0
  58. lightning_sdk/lightning_cloud/openapi/models/v1_token_login_response.py +123 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_token_owner_type.py +104 -0
  60. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +139 -191
  61. lightning_sdk/lightning_cloud/openapi/models/{v1_product_license_check_response.py → v1_validate_license_response.py} +21 -21
  62. lightning_sdk/lightning_cloud/rest_client.py +48 -45
  63. lightning_sdk/machine.py +5 -0
  64. lightning_sdk/pipeline/steps.py +1 -0
  65. lightning_sdk/studio.py +55 -13
  66. lightning_sdk/utils/config.py +18 -3
  67. lightning_sdk/utils/license.py +13 -0
  68. lightning_sdk/utils/resolve.py +6 -1
  69. {lightning_sdk-2025.10.14.dist-info → lightning_sdk-2025.10.23.dist-info}/METADATA +1 -1
  70. {lightning_sdk-2025.10.14.dist-info → lightning_sdk-2025.10.23.dist-info}/RECORD +74 -54
  71. lightning_sdk/lightning_cloud/openapi/models/v1_product_license.py +0 -435
  72. lightning_sdk/services/license.py +0 -363
  73. {lightning_sdk-2025.10.14.dist-info → lightning_sdk-2025.10.23.dist-info}/LICENSE +0 -0
  74. {lightning_sdk-2025.10.14.dist-info → lightning_sdk-2025.10.23.dist-info}/WHEEL +0 -0
  75. {lightning_sdk-2025.10.14.dist-info → lightning_sdk-2025.10.23.dist-info}/entry_points.txt +0 -0
  76. {lightning_sdk-2025.10.14.dist-info → lightning_sdk-2025.10.23.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,97 @@
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 V1DeleteLicenseResponse(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
+ }
45
+
46
+ attribute_map = {
47
+ }
48
+
49
+ def __init__(self): # noqa: E501
50
+ """V1DeleteLicenseResponse - a model defined in Swagger""" # noqa: E501
51
+ self.discriminator = None
52
+
53
+ def to_dict(self) -> dict:
54
+ """Returns the model properties as a dict"""
55
+ result = {}
56
+
57
+ for attr, _ in six.iteritems(self.swagger_types):
58
+ value = getattr(self, attr)
59
+ if isinstance(value, list):
60
+ result[attr] = list(map(
61
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
62
+ value
63
+ ))
64
+ elif hasattr(value, "to_dict"):
65
+ result[attr] = value.to_dict()
66
+ elif isinstance(value, dict):
67
+ result[attr] = dict(map(
68
+ lambda item: (item[0], item[1].to_dict())
69
+ if hasattr(item[1], "to_dict") else item,
70
+ value.items()
71
+ ))
72
+ else:
73
+ result[attr] = value
74
+ if issubclass(V1DeleteLicenseResponse, dict):
75
+ for key, value in self.items():
76
+ result[key] = value
77
+
78
+ return result
79
+
80
+ def to_str(self) -> str:
81
+ """Returns the string representation of the model"""
82
+ return pprint.pformat(self.to_dict())
83
+
84
+ def __repr__(self) -> str:
85
+ """For `print` and `pprint`"""
86
+ return self.to_str()
87
+
88
+ def __eq__(self, other: 'V1DeleteLicenseResponse') -> bool:
89
+ """Returns true if both objects are equal"""
90
+ if not isinstance(other, V1DeleteLicenseResponse):
91
+ return False
92
+
93
+ return self.__dict__ == other.__dict__
94
+
95
+ def __ne__(self, other: 'V1DeleteLicenseResponse') -> bool:
96
+ """Returns true if both objects are not equal"""
97
+ return not self == other
@@ -55,6 +55,7 @@ class V1ExternalClusterSpec(object):
55
55
  'google_cloud_v1': 'V1GoogleCloudDirectV1',
56
56
  'kubernetes_v1': 'V1KubernetesDirectV1',
57
57
  'lambda_labs_v1': 'V1LambdaLabsDirectV1',
58
+ 'lightning_elastic_cluster_v1': 'V1LightningElasticClusterV1',
58
59
  'locked_zones': 'list[str]',
59
60
  'machine_v1': 'V1MachineDirectV1',
60
61
  'monitor_deletion_disabled': 'bool',
@@ -89,6 +90,7 @@ class V1ExternalClusterSpec(object):
89
90
  'google_cloud_v1': 'googleCloudV1',
90
91
  'kubernetes_v1': 'kubernetesV1',
91
92
  'lambda_labs_v1': 'lambdaLabsV1',
93
+ 'lightning_elastic_cluster_v1': 'lightningElasticClusterV1',
92
94
  'locked_zones': 'lockedZones',
93
95
  'machine_v1': 'machineV1',
94
96
  'monitor_deletion_disabled': 'monitorDeletionDisabled',
@@ -108,7 +110,7 @@ class V1ExternalClusterSpec(object):
108
110
  'vultr_v1': 'vultrV1'
109
111
  }
110
112
 
111
- def __init__(self, ai_pod_v1: 'V1AiPodV1' =None, auth_token: 'str' =None, available_accelerators: 'list[str]' =None, aws_v1: 'V1AWSDirectV1' =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, google_cloud_v1: 'V1GoogleCloudDirectV1' =None, kubernetes_v1: 'V1KubernetesDirectV1' =None, lambda_labs_v1: 'V1LambdaLabsDirectV1' =None, locked_zones: 'list[str]' =None, machine_v1: 'V1MachineDirectV1' =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
113
+ def __init__(self, ai_pod_v1: 'V1AiPodV1' =None, auth_token: 'str' =None, available_accelerators: 'list[str]' =None, aws_v1: 'V1AWSDirectV1' =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, google_cloud_v1: 'V1GoogleCloudDirectV1' =None, kubernetes_v1: 'V1KubernetesDirectV1' =None, lambda_labs_v1: 'V1LambdaLabsDirectV1' =None, lightning_elastic_cluster_v1: 'V1LightningElasticClusterV1' =None, locked_zones: 'list[str]' =None, machine_v1: 'V1MachineDirectV1' =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
112
114
  """V1ExternalClusterSpec - a model defined in Swagger""" # noqa: E501
113
115
  self._ai_pod_v1 = None
114
116
  self._auth_token = None
@@ -124,6 +126,7 @@ class V1ExternalClusterSpec(object):
124
126
  self._google_cloud_v1 = None
125
127
  self._kubernetes_v1 = None
126
128
  self._lambda_labs_v1 = None
129
+ self._lightning_elastic_cluster_v1 = None
127
130
  self._locked_zones = None
128
131
  self._machine_v1 = None
129
132
  self._monitor_deletion_disabled = None
@@ -170,6 +173,8 @@ class V1ExternalClusterSpec(object):
170
173
  self.kubernetes_v1 = kubernetes_v1
171
174
  if lambda_labs_v1 is not None:
172
175
  self.lambda_labs_v1 = lambda_labs_v1
176
+ if lightning_elastic_cluster_v1 is not None:
177
+ self.lightning_elastic_cluster_v1 = lightning_elastic_cluster_v1
173
178
  if locked_zones is not None:
174
179
  self.locked_zones = locked_zones
175
180
  if machine_v1 is not None:
@@ -501,6 +506,27 @@ class V1ExternalClusterSpec(object):
501
506
 
502
507
  self._lambda_labs_v1 = lambda_labs_v1
503
508
 
509
+ @property
510
+ def lightning_elastic_cluster_v1(self) -> 'V1LightningElasticClusterV1':
511
+ """Gets the lightning_elastic_cluster_v1 of this V1ExternalClusterSpec. # noqa: E501
512
+
513
+
514
+ :return: The lightning_elastic_cluster_v1 of this V1ExternalClusterSpec. # noqa: E501
515
+ :rtype: V1LightningElasticClusterV1
516
+ """
517
+ return self._lightning_elastic_cluster_v1
518
+
519
+ @lightning_elastic_cluster_v1.setter
520
+ def lightning_elastic_cluster_v1(self, lightning_elastic_cluster_v1: 'V1LightningElasticClusterV1'):
521
+ """Sets the lightning_elastic_cluster_v1 of this V1ExternalClusterSpec.
522
+
523
+
524
+ :param lightning_elastic_cluster_v1: The lightning_elastic_cluster_v1 of this V1ExternalClusterSpec. # noqa: E501
525
+ :type: V1LightningElasticClusterV1
526
+ """
527
+
528
+ self._lightning_elastic_cluster_v1 = lightning_elastic_cluster_v1
529
+
504
530
  @property
505
531
  def locked_zones(self) -> 'list[str]':
506
532
  """Gets the locked_zones of this V1ExternalClusterSpec. # noqa: E501
@@ -43,6 +43,7 @@ class V1ExternalSearchUser(object):
43
43
  swagger_types = {
44
44
  'first_name': 'str',
45
45
  'id': 'str',
46
+ 'internal': 'bool',
46
47
  'last_name': 'str',
47
48
  'organization': 'str',
48
49
  'picture_url': 'str',
@@ -54,6 +55,7 @@ class V1ExternalSearchUser(object):
54
55
  attribute_map = {
55
56
  'first_name': 'firstName',
56
57
  'id': 'id',
58
+ 'internal': 'internal',
57
59
  'last_name': 'lastName',
58
60
  'organization': 'organization',
59
61
  'picture_url': 'pictureUrl',
@@ -62,10 +64,11 @@ class V1ExternalSearchUser(object):
62
64
  'username': 'username'
63
65
  }
64
66
 
65
- def __init__(self, first_name: 'str' =None, id: 'str' =None, last_name: 'str' =None, organization: 'str' =None, picture_url: 'str' =None, role: 'str' =None, sb: 'bool' =None, username: 'str' =None): # noqa: E501
67
+ def __init__(self, first_name: 'str' =None, id: 'str' =None, internal: 'bool' =None, last_name: 'str' =None, organization: 'str' =None, picture_url: 'str' =None, role: 'str' =None, sb: 'bool' =None, username: 'str' =None): # noqa: E501
66
68
  """V1ExternalSearchUser - a model defined in Swagger""" # noqa: E501
67
69
  self._first_name = None
68
70
  self._id = None
71
+ self._internal = None
69
72
  self._last_name = None
70
73
  self._organization = None
71
74
  self._picture_url = None
@@ -77,6 +80,8 @@ class V1ExternalSearchUser(object):
77
80
  self.first_name = first_name
78
81
  if id is not None:
79
82
  self.id = id
83
+ if internal is not None:
84
+ self.internal = internal
80
85
  if last_name is not None:
81
86
  self.last_name = last_name
82
87
  if organization is not None:
@@ -132,6 +137,27 @@ class V1ExternalSearchUser(object):
132
137
 
133
138
  self._id = id
134
139
 
140
+ @property
141
+ def internal(self) -> 'bool':
142
+ """Gets the internal of this V1ExternalSearchUser. # noqa: E501
143
+
144
+
145
+ :return: The internal of this V1ExternalSearchUser. # noqa: E501
146
+ :rtype: bool
147
+ """
148
+ return self._internal
149
+
150
+ @internal.setter
151
+ def internal(self, internal: 'bool'):
152
+ """Sets the internal of this V1ExternalSearchUser.
153
+
154
+
155
+ :param internal: The internal of this V1ExternalSearchUser. # noqa: E501
156
+ :type: bool
157
+ """
158
+
159
+ self._internal = internal
160
+
135
161
  @property
136
162
  def last_name(self) -> 'str':
137
163
  """Gets the last_name of this V1ExternalSearchUser. # noqa: E501
@@ -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 V1FilesystemMetric(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
+ 'mountpoint': 'str',
45
+ 'timestamp': 'datetime',
46
+ 'total': 'float',
47
+ 'utilisation': 'float'
48
+ }
49
+
50
+ attribute_map = {
51
+ 'mountpoint': 'mountpoint',
52
+ 'timestamp': 'timestamp',
53
+ 'total': 'total',
54
+ 'utilisation': 'utilisation'
55
+ }
56
+
57
+ def __init__(self, mountpoint: 'str' =None, timestamp: 'datetime' =None, total: 'float' =None, utilisation: 'float' =None): # noqa: E501
58
+ """V1FilesystemMetric - a model defined in Swagger""" # noqa: E501
59
+ self._mountpoint = None
60
+ self._timestamp = None
61
+ self._total = None
62
+ self._utilisation = None
63
+ self.discriminator = None
64
+ if mountpoint is not None:
65
+ self.mountpoint = mountpoint
66
+ if timestamp is not None:
67
+ self.timestamp = timestamp
68
+ if total is not None:
69
+ self.total = total
70
+ if utilisation is not None:
71
+ self.utilisation = utilisation
72
+
73
+ @property
74
+ def mountpoint(self) -> 'str':
75
+ """Gets the mountpoint of this V1FilesystemMetric. # noqa: E501
76
+
77
+
78
+ :return: The mountpoint of this V1FilesystemMetric. # noqa: E501
79
+ :rtype: str
80
+ """
81
+ return self._mountpoint
82
+
83
+ @mountpoint.setter
84
+ def mountpoint(self, mountpoint: 'str'):
85
+ """Sets the mountpoint of this V1FilesystemMetric.
86
+
87
+
88
+ :param mountpoint: The mountpoint of this V1FilesystemMetric. # noqa: E501
89
+ :type: str
90
+ """
91
+
92
+ self._mountpoint = mountpoint
93
+
94
+ @property
95
+ def timestamp(self) -> 'datetime':
96
+ """Gets the timestamp of this V1FilesystemMetric. # noqa: E501
97
+
98
+
99
+ :return: The timestamp of this V1FilesystemMetric. # noqa: E501
100
+ :rtype: datetime
101
+ """
102
+ return self._timestamp
103
+
104
+ @timestamp.setter
105
+ def timestamp(self, timestamp: 'datetime'):
106
+ """Sets the timestamp of this V1FilesystemMetric.
107
+
108
+
109
+ :param timestamp: The timestamp of this V1FilesystemMetric. # noqa: E501
110
+ :type: datetime
111
+ """
112
+
113
+ self._timestamp = timestamp
114
+
115
+ @property
116
+ def total(self) -> 'float':
117
+ """Gets the total of this V1FilesystemMetric. # noqa: E501
118
+
119
+
120
+ :return: The total of this V1FilesystemMetric. # noqa: E501
121
+ :rtype: float
122
+ """
123
+ return self._total
124
+
125
+ @total.setter
126
+ def total(self, total: 'float'):
127
+ """Sets the total of this V1FilesystemMetric.
128
+
129
+
130
+ :param total: The total of this V1FilesystemMetric. # noqa: E501
131
+ :type: float
132
+ """
133
+
134
+ self._total = total
135
+
136
+ @property
137
+ def utilisation(self) -> 'float':
138
+ """Gets the utilisation of this V1FilesystemMetric. # noqa: E501
139
+
140
+
141
+ :return: The utilisation of this V1FilesystemMetric. # noqa: E501
142
+ :rtype: float
143
+ """
144
+ return self._utilisation
145
+
146
+ @utilisation.setter
147
+ def utilisation(self, utilisation: 'float'):
148
+ """Sets the utilisation of this V1FilesystemMetric.
149
+
150
+
151
+ :param utilisation: The utilisation of this V1FilesystemMetric. # noqa: E501
152
+ :type: float
153
+ """
154
+
155
+ self._utilisation = utilisation
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(V1FilesystemMetric, 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: 'V1FilesystemMetric') -> bool:
193
+ """Returns true if both objects are equal"""
194
+ if not isinstance(other, V1FilesystemMetric):
195
+ return False
196
+
197
+ return self.__dict__ == other.__dict__
198
+
199
+ def __ne__(self, other: 'V1FilesystemMetric') -> bool:
200
+ """Returns true if both objects are not equal"""
201
+ return not self == other
@@ -41,19 +41,24 @@ class V1GetCloudSpaceTransferEstimateResponse(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
- 'estimated_duration_seconds': 'str'
44
+ 'estimated_duration_seconds': 'str',
45
+ 'requires_transfer': 'bool'
45
46
  }
46
47
 
47
48
  attribute_map = {
48
- 'estimated_duration_seconds': 'estimatedDurationSeconds'
49
+ 'estimated_duration_seconds': 'estimatedDurationSeconds',
50
+ 'requires_transfer': 'requiresTransfer'
49
51
  }
50
52
 
51
- def __init__(self, estimated_duration_seconds: 'str' =None): # noqa: E501
53
+ def __init__(self, estimated_duration_seconds: 'str' =None, requires_transfer: 'bool' =None): # noqa: E501
52
54
  """V1GetCloudSpaceTransferEstimateResponse - a model defined in Swagger""" # noqa: E501
53
55
  self._estimated_duration_seconds = None
56
+ self._requires_transfer = None
54
57
  self.discriminator = None
55
58
  if estimated_duration_seconds is not None:
56
59
  self.estimated_duration_seconds = estimated_duration_seconds
60
+ if requires_transfer is not None:
61
+ self.requires_transfer = requires_transfer
57
62
 
58
63
  @property
59
64
  def estimated_duration_seconds(self) -> 'str':
@@ -76,6 +81,27 @@ class V1GetCloudSpaceTransferEstimateResponse(object):
76
81
 
77
82
  self._estimated_duration_seconds = estimated_duration_seconds
78
83
 
84
+ @property
85
+ def requires_transfer(self) -> 'bool':
86
+ """Gets the requires_transfer of this V1GetCloudSpaceTransferEstimateResponse. # noqa: E501
87
+
88
+
89
+ :return: The requires_transfer of this V1GetCloudSpaceTransferEstimateResponse. # noqa: E501
90
+ :rtype: bool
91
+ """
92
+ return self._requires_transfer
93
+
94
+ @requires_transfer.setter
95
+ def requires_transfer(self, requires_transfer: 'bool'):
96
+ """Sets the requires_transfer of this V1GetCloudSpaceTransferEstimateResponse.
97
+
98
+
99
+ :param requires_transfer: The requires_transfer of this V1GetCloudSpaceTransferEstimateResponse. # noqa: E501
100
+ :type: bool
101
+ """
102
+
103
+ self._requires_transfer = requires_transfer
104
+
79
105
  def to_dict(self) -> dict:
80
106
  """Returns the model properties as a dict"""
81
107
  result = {}
@@ -43,6 +43,7 @@ class V1Incident(object):
43
43
  swagger_types = {
44
44
  'cluster_id': 'str',
45
45
  'created_at': 'datetime',
46
+ 'details': 'list[V1IncidentDetail]',
46
47
  'ended_at': 'datetime',
47
48
  'id': 'str',
48
49
  'message': 'str',
@@ -63,6 +64,7 @@ class V1Incident(object):
63
64
  attribute_map = {
64
65
  'cluster_id': 'clusterId',
65
66
  'created_at': 'createdAt',
67
+ 'details': 'details',
66
68
  'ended_at': 'endedAt',
67
69
  'id': 'id',
68
70
  'message': 'message',
@@ -80,10 +82,11 @@ class V1Incident(object):
80
82
  'user_id': 'userId'
81
83
  }
82
84
 
83
- def __init__(self, cluster_id: 'str' =None, created_at: 'datetime' =None, ended_at: 'datetime' =None, id: 'str' =None, message: 'str' =None, notified: 'bool' =None, project_id: 'str' =None, resolution_notes: 'str' =None, resource: 'str' =None, resource_id: 'str' =None, severity: 'V1IncidentSeverity' =None, started_at: 'datetime' =None, status: 'str' =None, title: 'str' =None, type: 'V1IncidentType' =None, updated_at: 'datetime' =None, user_id: 'str' =None): # noqa: E501
85
+ def __init__(self, cluster_id: 'str' =None, created_at: 'datetime' =None, details: 'list[V1IncidentDetail]' =None, ended_at: 'datetime' =None, id: 'str' =None, message: 'str' =None, notified: 'bool' =None, project_id: 'str' =None, resolution_notes: 'str' =None, resource: 'str' =None, resource_id: 'str' =None, severity: 'V1IncidentSeverity' =None, started_at: 'datetime' =None, status: 'str' =None, title: 'str' =None, type: 'V1IncidentType' =None, updated_at: 'datetime' =None, user_id: 'str' =None): # noqa: E501
84
86
  """V1Incident - a model defined in Swagger""" # noqa: E501
85
87
  self._cluster_id = None
86
88
  self._created_at = None
89
+ self._details = None
87
90
  self._ended_at = None
88
91
  self._id = None
89
92
  self._message = None
@@ -104,6 +107,8 @@ class V1Incident(object):
104
107
  self.cluster_id = cluster_id
105
108
  if created_at is not None:
106
109
  self.created_at = created_at
110
+ if details is not None:
111
+ self.details = details
107
112
  if ended_at is not None:
108
113
  self.ended_at = ended_at
109
114
  if id is not None:
@@ -177,6 +182,27 @@ class V1Incident(object):
177
182
 
178
183
  self._created_at = created_at
179
184
 
185
+ @property
186
+ def details(self) -> 'list[V1IncidentDetail]':
187
+ """Gets the details of this V1Incident. # noqa: E501
188
+
189
+
190
+ :return: The details of this V1Incident. # noqa: E501
191
+ :rtype: list[V1IncidentDetail]
192
+ """
193
+ return self._details
194
+
195
+ @details.setter
196
+ def details(self, details: 'list[V1IncidentDetail]'):
197
+ """Sets the details of this V1Incident.
198
+
199
+
200
+ :param details: The details of this V1Incident. # noqa: E501
201
+ :type: list[V1IncidentDetail]
202
+ """
203
+
204
+ self._details = details
205
+
180
206
  @property
181
207
  def ended_at(self) -> 'datetime':
182
208
  """Gets the ended_at of this V1Incident. # noqa: E501