lightning-sdk 2025.12.16__py3-none-any.whl → 2026.1.22__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. lightning_sdk/__version__.py +1 -1
  2. lightning_sdk/api/k8s_api.py +75 -29
  3. lightning_sdk/api/org_api.py +7 -0
  4. lightning_sdk/api/studio_api.py +223 -36
  5. lightning_sdk/api/teamspace_api.py +28 -9
  6. lightning_sdk/api/user_api.py +5 -0
  7. lightning_sdk/cli/cp/__init__.py +64 -0
  8. lightning_sdk/cli/entrypoint.py +2 -0
  9. lightning_sdk/cli/groups.py +22 -0
  10. lightning_sdk/cli/legacy/clusters_menu.py +2 -2
  11. lightning_sdk/cli/legacy/deploy/_auth.py +7 -6
  12. lightning_sdk/cli/legacy/download.py +2 -1
  13. lightning_sdk/cli/legacy/run.py +13 -2
  14. lightning_sdk/cli/legacy/studios_menu.py +8 -1
  15. lightning_sdk/cli/studio/__init__.py +4 -0
  16. lightning_sdk/cli/studio/cp.py +20 -64
  17. lightning_sdk/cli/studio/ls.py +57 -0
  18. lightning_sdk/cli/studio/rm.py +71 -0
  19. lightning_sdk/cli/utils/logging.py +2 -1
  20. lightning_sdk/cli/utils/studio_filesystem.py +65 -0
  21. lightning_sdk/cli/utils/teamspace_selection.py +5 -0
  22. lightning_sdk/exceptions.py +4 -0
  23. lightning_sdk/job/base.py +24 -5
  24. lightning_sdk/job/job.py +12 -5
  25. lightning_sdk/job/v1.py +5 -2
  26. lightning_sdk/job/v2.py +9 -1
  27. lightning_sdk/k8s_cluster.py +9 -10
  28. lightning_sdk/lightning_cloud/__version__.py +1 -1
  29. lightning_sdk/lightning_cloud/openapi/__init__.py +46 -3
  30. lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
  31. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +118 -1
  32. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +787 -125
  33. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +5 -1
  34. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +11 -11
  35. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +246 -19
  36. lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py +116 -11
  37. lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +588 -2
  38. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +9 -1
  39. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +5 -1
  40. lightning_sdk/lightning_cloud/openapi/api/virtual_machine_service_api.py +557 -0
  41. lightning_sdk/lightning_cloud/openapi/models/__init__.py +45 -3
  42. lightning_sdk/lightning_cloud/openapi/models/cloud_space_environment_template_service_update_cloud_space_environment_template_body.py +27 -1
  43. lightning_sdk/lightning_cloud/openapi/models/cluster_service_add_container_registry_body.py +123 -0
  44. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_cluster_capacity_reservation_body.py +53 -1
  45. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_machine_body.py +79 -1
  46. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_org_cluster_capacity_reservation_body.py +409 -0
  47. lightning_sdk/lightning_cloud/openapi/models/cluster_service_refresh_container_registry_credentials_body.py +97 -0
  48. lightning_sdk/lightning_cloud/openapi/models/cluster_service_report_machine_system_metrics_body.py +123 -0
  49. lightning_sdk/lightning_cloud/openapi/models/cluster_service_validate_container_registry_body.py +97 -0
  50. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +27 -1
  51. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_create_lit_logger_media_body.py +305 -0
  52. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_lit_logger_media_body.py +149 -0
  53. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_metrics_stream_body.py +53 -1
  54. lightning_sdk/lightning_cloud/openapi/models/v1_add_container_registry_response.py +123 -0
  55. lightning_sdk/lightning_cloud/openapi/models/v1_capacity_reservation_used_by.py +227 -0
  56. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +1 -1
  57. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +27 -1
  58. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_type.py +1 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_specialized_view.py +1 -0
  60. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  61. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +27 -1
  62. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +53 -27
  63. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +0 -1
  64. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry.py +253 -0
  65. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_info.py +281 -0
  66. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_integration.py +123 -0
  67. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_status.py +105 -0
  68. lightning_sdk/lightning_cloud/openapi/models/v1_create_cloud_space_environment_template_request.py +27 -1
  69. lightning_sdk/lightning_cloud/openapi/models/v1_create_lit_logger_media_response.py +149 -0
  70. lightning_sdk/lightning_cloud/openapi/models/v1_create_org_cluster_capacity_reservation_response.py +201 -0
  71. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_request.py +29 -3
  72. lightning_sdk/lightning_cloud/openapi/models/v1_cudo_direct_v1.py +175 -0
  73. lightning_sdk/lightning_cloud/openapi/models/v1_delete_container_registry_response.py +97 -0
  74. lightning_sdk/lightning_cloud/openapi/models/v1_delete_lit_logger_media_response.py +97 -0
  75. lightning_sdk/lightning_cloud/openapi/models/v1_delete_virtual_machine_response.py +97 -0
  76. lightning_sdk/lightning_cloud/openapi/models/{v1_ai_pod_v1.py → v1_ecr_registry_config.py} +49 -49
  77. lightning_sdk/lightning_cloud/openapi/models/v1_ecr_registry_config_input.py +123 -0
  78. lightning_sdk/lightning_cloud/openapi/models/v1_ecr_registry_details.py +201 -0
  79. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -27
  80. lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +27 -1
  81. lightning_sdk/lightning_cloud/openapi/models/v1_get_artifacts_page_response.py +29 -3
  82. lightning_sdk/lightning_cloud/openapi/models/v1_get_kubernetes_pod_logs_response.py +149 -0
  83. lightning_sdk/lightning_cloud/openapi/models/{v1_get_machine_response.py → v1_get_kubernetes_pod_response.py} +23 -23
  84. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +27 -1
  85. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  86. lightning_sdk/lightning_cloud/openapi/models/v1_joinable_organization.py +27 -1
  87. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_setting.py +149 -0
  88. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_type.py +108 -0
  89. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_settings_v1.py +53 -1
  90. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +105 -1
  91. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod.py +27 -1
  92. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod_logs_page.py +227 -0
  93. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_config.py +357 -0
  94. lightning_sdk/lightning_cloud/openapi/models/v1_list_container_registries_response.py +123 -0
  95. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_response.py +43 -17
  96. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_sort_order.py +104 -0
  97. lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_logger_media_response.py +149 -0
  98. lightning_sdk/lightning_cloud/openapi/models/v1_list_models_response.py +55 -3
  99. lightning_sdk/lightning_cloud/openapi/models/v1_list_virtual_machines_response.py +123 -0
  100. lightning_sdk/lightning_cloud/openapi/models/v1_lit_logger_media.py +513 -0
  101. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +53 -53
  102. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +107 -3
  103. lightning_sdk/lightning_cloud/openapi/models/v1_media_type.py +104 -0
  104. lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py +29 -3
  105. lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +27 -1
  106. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +27 -1
  107. lightning_sdk/lightning_cloud/openapi/models/v1_refresh_container_registry_credentials_response.py +123 -0
  108. lightning_sdk/lightning_cloud/openapi/models/v1_report_cloud_space_instance_idle_state_response.py +97 -0
  109. lightning_sdk/lightning_cloud/openapi/models/v1_report_machine_system_metrics_response.py +97 -0
  110. lightning_sdk/lightning_cloud/openapi/models/v1_search_user.py +27 -1
  111. lightning_sdk/lightning_cloud/openapi/models/v1_tenant_credentials.py +201 -0
  112. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +217 -113
  113. lightning_sdk/lightning_cloud/openapi/models/v1_validate_container_registry_response.py +149 -0
  114. lightning_sdk/lightning_cloud/openapi/models/v1_virtual_machine.py +409 -0
  115. lightning_sdk/lightning_cloud/openapi/models/v1_vm_configuration.py +149 -0
  116. lightning_sdk/lightning_cloud/openapi/models/v1_vm_provider_configuration.py +227 -0
  117. lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_create_virtual_machine_body.py +565 -0
  118. lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_update_virtual_machine_body.py +97 -0
  119. lightning_sdk/lightning_cloud/openapi/rest.py +2 -2
  120. lightning_sdk/lightning_cloud/rest_client.py +0 -2
  121. lightning_sdk/machine.py +3 -3
  122. lightning_sdk/mmt/base.py +26 -7
  123. lightning_sdk/mmt/mmt.py +11 -6
  124. lightning_sdk/mmt/v1.py +5 -2
  125. lightning_sdk/mmt/v2.py +5 -2
  126. lightning_sdk/organization.py +10 -1
  127. lightning_sdk/owner.py +4 -0
  128. lightning_sdk/plugin.py +2 -2
  129. lightning_sdk/studio.py +47 -6
  130. lightning_sdk/user.py +22 -2
  131. lightning_sdk/utils/logging.py +2 -1
  132. lightning_sdk/utils/resolve.py +9 -7
  133. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2026.1.22.dist-info}/METADATA +1 -5
  134. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2026.1.22.dist-info}/RECORD +139 -94
  135. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2026.1.22.dist-info}/WHEEL +1 -1
  136. lightning_sdk/lightning_cloud/cli/__main__.py +0 -29
  137. lightning_sdk/lightning_cloud/source_code/logs_socket_api.py +0 -103
  138. /lightning_sdk/lightning_cloud/openapi/models/{v1_list_filesystem_mm_ts_response.py → v1_list_filesystem_mmts_response.py} +0 -0
  139. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2026.1.22.dist-info}/LICENSE +0 -0
  140. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2026.1.22.dist-info}/entry_points.txt +0 -0
  141. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2026.1.22.dist-info}/top_level.txt +0 -0
@@ -49,6 +49,7 @@ class V1JoinableOrganization(object):
49
49
  'location': 'str',
50
50
  'member_count': 'str',
51
51
  'name': 'str',
52
+ 'skip_phone_verification': 'bool',
52
53
  'twitter_username': 'str'
53
54
  }
54
55
 
@@ -61,10 +62,11 @@ class V1JoinableOrganization(object):
61
62
  'location': 'location',
62
63
  'member_count': 'memberCount',
63
64
  'name': 'name',
65
+ 'skip_phone_verification': 'skipPhoneVerification',
64
66
  'twitter_username': 'twitterUsername'
65
67
  }
66
68
 
67
- def __init__(self, description: 'str' =None, display_name: 'str' =None, domain: 'str' =None, email: 'str' =None, id: 'str' =None, location: 'str' =None, member_count: 'str' =None, name: 'str' =None, twitter_username: 'str' =None): # noqa: E501
69
+ def __init__(self, description: 'str' =None, display_name: 'str' =None, domain: 'str' =None, email: 'str' =None, id: 'str' =None, location: 'str' =None, member_count: 'str' =None, name: 'str' =None, skip_phone_verification: 'bool' =None, twitter_username: 'str' =None): # noqa: E501
68
70
  """V1JoinableOrganization - a model defined in Swagger""" # noqa: E501
69
71
  self._description = None
70
72
  self._display_name = None
@@ -74,6 +76,7 @@ class V1JoinableOrganization(object):
74
76
  self._location = None
75
77
  self._member_count = None
76
78
  self._name = None
79
+ self._skip_phone_verification = None
77
80
  self._twitter_username = None
78
81
  self.discriminator = None
79
82
  if description is not None:
@@ -92,6 +95,8 @@ class V1JoinableOrganization(object):
92
95
  self.member_count = member_count
93
96
  if name is not None:
94
97
  self.name = name
98
+ if skip_phone_verification is not None:
99
+ self.skip_phone_verification = skip_phone_verification
95
100
  if twitter_username is not None:
96
101
  self.twitter_username = twitter_username
97
102
 
@@ -263,6 +268,27 @@ class V1JoinableOrganization(object):
263
268
 
264
269
  self._name = name
265
270
 
271
+ @property
272
+ def skip_phone_verification(self) -> 'bool':
273
+ """Gets the skip_phone_verification of this V1JoinableOrganization. # noqa: E501
274
+
275
+
276
+ :return: The skip_phone_verification of this V1JoinableOrganization. # noqa: E501
277
+ :rtype: bool
278
+ """
279
+ return self._skip_phone_verification
280
+
281
+ @skip_phone_verification.setter
282
+ def skip_phone_verification(self, skip_phone_verification: 'bool'):
283
+ """Sets the skip_phone_verification of this V1JoinableOrganization.
284
+
285
+
286
+ :param skip_phone_verification: The skip_phone_verification of this V1JoinableOrganization. # noqa: E501
287
+ :type: bool
288
+ """
289
+
290
+ self._skip_phone_verification = skip_phone_verification
291
+
266
292
  @property
267
293
  def twitter_username(self) -> 'str':
268
294
  """Gets the twitter_username of this V1JoinableOrganization. # noqa: E501
@@ -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 V1K8sIncidentSetting(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
+ 'enabled': 'bool',
45
+ 'type': 'V1K8sIncidentType'
46
+ }
47
+
48
+ attribute_map = {
49
+ 'enabled': 'enabled',
50
+ 'type': 'type'
51
+ }
52
+
53
+ def __init__(self, enabled: 'bool' =None, type: 'V1K8sIncidentType' =None): # noqa: E501
54
+ """V1K8sIncidentSetting - a model defined in Swagger""" # noqa: E501
55
+ self._enabled = None
56
+ self._type = None
57
+ self.discriminator = None
58
+ if enabled is not None:
59
+ self.enabled = enabled
60
+ if type is not None:
61
+ self.type = type
62
+
63
+ @property
64
+ def enabled(self) -> 'bool':
65
+ """Gets the enabled of this V1K8sIncidentSetting. # noqa: E501
66
+
67
+
68
+ :return: The enabled of this V1K8sIncidentSetting. # noqa: E501
69
+ :rtype: bool
70
+ """
71
+ return self._enabled
72
+
73
+ @enabled.setter
74
+ def enabled(self, enabled: 'bool'):
75
+ """Sets the enabled of this V1K8sIncidentSetting.
76
+
77
+
78
+ :param enabled: The enabled of this V1K8sIncidentSetting. # noqa: E501
79
+ :type: bool
80
+ """
81
+
82
+ self._enabled = enabled
83
+
84
+ @property
85
+ def type(self) -> 'V1K8sIncidentType':
86
+ """Gets the type of this V1K8sIncidentSetting. # noqa: E501
87
+
88
+
89
+ :return: The type of this V1K8sIncidentSetting. # noqa: E501
90
+ :rtype: V1K8sIncidentType
91
+ """
92
+ return self._type
93
+
94
+ @type.setter
95
+ def type(self, type: 'V1K8sIncidentType'):
96
+ """Sets the type of this V1K8sIncidentSetting.
97
+
98
+
99
+ :param type: The type of this V1K8sIncidentSetting. # noqa: E501
100
+ :type: V1K8sIncidentType
101
+ """
102
+
103
+ self._type = type
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(V1K8sIncidentSetting, 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: 'V1K8sIncidentSetting') -> bool:
141
+ """Returns true if both objects are equal"""
142
+ if not isinstance(other, V1K8sIncidentSetting):
143
+ return False
144
+
145
+ return self.__dict__ == other.__dict__
146
+
147
+ def __ne__(self, other: 'V1K8sIncidentSetting') -> bool:
148
+ """Returns true if both objects are not equal"""
149
+ return not self == other
@@ -0,0 +1,108 @@
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 V1K8sIncidentType(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
+ K8S_HIGH_TEMPERATURE = "K8S_HIGH_TEMPERATURE"
41
+ K8S_UNSCHEDULABLE_GPUS = "K8S_UNSCHEDULABLE_GPUS"
42
+ K8S_KUBELET_FAILURE = "K8S_KUBELET_FAILURE"
43
+ K8S_XID_GPU_ERROR = "K8S_XID_GPU_ERROR"
44
+ K8S_UNSCHEDULABLE_NODES = "K8S_UNSCHEDULABLE_NODES"
45
+ K8S_HIGH_NFS_STORAGE = "K8S_HIGH_NFS_STORAGE"
46
+ USER_REPORTED = "USER_REPORTED"
47
+ """
48
+ Attributes:
49
+ swagger_types (dict): The key is attribute name
50
+ and the value is attribute type.
51
+ attribute_map (dict): The key is attribute name
52
+ and the value is json key in definition.
53
+ """
54
+ swagger_types = {
55
+ }
56
+
57
+ attribute_map = {
58
+ }
59
+
60
+ def __init__(self): # noqa: E501
61
+ """V1K8sIncidentType - a model defined in Swagger""" # noqa: E501
62
+ self.discriminator = None
63
+
64
+ def to_dict(self) -> dict:
65
+ """Returns the model properties as a dict"""
66
+ result = {}
67
+
68
+ for attr, _ in six.iteritems(self.swagger_types):
69
+ value = getattr(self, attr)
70
+ if isinstance(value, list):
71
+ result[attr] = list(map(
72
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
73
+ value
74
+ ))
75
+ elif hasattr(value, "to_dict"):
76
+ result[attr] = value.to_dict()
77
+ elif isinstance(value, dict):
78
+ result[attr] = dict(map(
79
+ lambda item: (item[0], item[1].to_dict())
80
+ if hasattr(item[1], "to_dict") else item,
81
+ value.items()
82
+ ))
83
+ else:
84
+ result[attr] = value
85
+ if issubclass(V1K8sIncidentType, dict):
86
+ for key, value in self.items():
87
+ result[key] = value
88
+
89
+ return result
90
+
91
+ def to_str(self) -> str:
92
+ """Returns the string representation of the model"""
93
+ return pprint.pformat(self.to_dict())
94
+
95
+ def __repr__(self) -> str:
96
+ """For `print` and `pprint`"""
97
+ return self.to_str()
98
+
99
+ def __eq__(self, other: 'V1K8sIncidentType') -> bool:
100
+ """Returns true if both objects are equal"""
101
+ if not isinstance(other, V1K8sIncidentType):
102
+ return False
103
+
104
+ return self.__dict__ == other.__dict__
105
+
106
+ def __ne__(self, other: 'V1K8sIncidentType') -> bool:
107
+ """Returns true if both objects are not equal"""
108
+ return not self == other
@@ -42,8 +42,10 @@ class V1KubernetesDirectSettingsV1(object):
42
42
  """
43
43
  swagger_types = {
44
44
  'daily_usage_report': 'bool',
45
+ 'disable_pods_collection': 'bool',
45
46
  'monthly_usage_report': 'bool',
46
47
  'nfs_storage_threshold': 'float',
48
+ 'persist_pods_logs': 'bool',
47
49
  'slack_channel_id': 'str',
48
50
  'temperature_threshold': 'float',
49
51
  'weekly_usage_report': 'bool'
@@ -51,28 +53,36 @@ class V1KubernetesDirectSettingsV1(object):
51
53
 
52
54
  attribute_map = {
53
55
  'daily_usage_report': 'dailyUsageReport',
56
+ 'disable_pods_collection': 'disablePodsCollection',
54
57
  'monthly_usage_report': 'monthlyUsageReport',
55
58
  'nfs_storage_threshold': 'nfsStorageThreshold',
59
+ 'persist_pods_logs': 'persistPodsLogs',
56
60
  'slack_channel_id': 'slackChannelId',
57
61
  'temperature_threshold': 'temperatureThreshold',
58
62
  'weekly_usage_report': 'weeklyUsageReport'
59
63
  }
60
64
 
61
- def __init__(self, daily_usage_report: 'bool' =None, monthly_usage_report: 'bool' =None, nfs_storage_threshold: 'float' =None, slack_channel_id: 'str' =None, temperature_threshold: 'float' =None, weekly_usage_report: 'bool' =None): # noqa: E501
65
+ def __init__(self, daily_usage_report: 'bool' =None, disable_pods_collection: 'bool' =None, monthly_usage_report: 'bool' =None, nfs_storage_threshold: 'float' =None, persist_pods_logs: 'bool' =None, slack_channel_id: 'str' =None, temperature_threshold: 'float' =None, weekly_usage_report: 'bool' =None): # noqa: E501
62
66
  """V1KubernetesDirectSettingsV1 - a model defined in Swagger""" # noqa: E501
63
67
  self._daily_usage_report = None
68
+ self._disable_pods_collection = None
64
69
  self._monthly_usage_report = None
65
70
  self._nfs_storage_threshold = None
71
+ self._persist_pods_logs = None
66
72
  self._slack_channel_id = None
67
73
  self._temperature_threshold = None
68
74
  self._weekly_usage_report = None
69
75
  self.discriminator = None
70
76
  if daily_usage_report is not None:
71
77
  self.daily_usage_report = daily_usage_report
78
+ if disable_pods_collection is not None:
79
+ self.disable_pods_collection = disable_pods_collection
72
80
  if monthly_usage_report is not None:
73
81
  self.monthly_usage_report = monthly_usage_report
74
82
  if nfs_storage_threshold is not None:
75
83
  self.nfs_storage_threshold = nfs_storage_threshold
84
+ if persist_pods_logs is not None:
85
+ self.persist_pods_logs = persist_pods_logs
76
86
  if slack_channel_id is not None:
77
87
  self.slack_channel_id = slack_channel_id
78
88
  if temperature_threshold is not None:
@@ -101,6 +111,27 @@ class V1KubernetesDirectSettingsV1(object):
101
111
 
102
112
  self._daily_usage_report = daily_usage_report
103
113
 
114
+ @property
115
+ def disable_pods_collection(self) -> 'bool':
116
+ """Gets the disable_pods_collection of this V1KubernetesDirectSettingsV1. # noqa: E501
117
+
118
+
119
+ :return: The disable_pods_collection of this V1KubernetesDirectSettingsV1. # noqa: E501
120
+ :rtype: bool
121
+ """
122
+ return self._disable_pods_collection
123
+
124
+ @disable_pods_collection.setter
125
+ def disable_pods_collection(self, disable_pods_collection: 'bool'):
126
+ """Sets the disable_pods_collection of this V1KubernetesDirectSettingsV1.
127
+
128
+
129
+ :param disable_pods_collection: The disable_pods_collection of this V1KubernetesDirectSettingsV1. # noqa: E501
130
+ :type: bool
131
+ """
132
+
133
+ self._disable_pods_collection = disable_pods_collection
134
+
104
135
  @property
105
136
  def monthly_usage_report(self) -> 'bool':
106
137
  """Gets the monthly_usage_report of this V1KubernetesDirectSettingsV1. # noqa: E501
@@ -143,6 +174,27 @@ class V1KubernetesDirectSettingsV1(object):
143
174
 
144
175
  self._nfs_storage_threshold = nfs_storage_threshold
145
176
 
177
+ @property
178
+ def persist_pods_logs(self) -> 'bool':
179
+ """Gets the persist_pods_logs of this V1KubernetesDirectSettingsV1. # noqa: E501
180
+
181
+
182
+ :return: The persist_pods_logs of this V1KubernetesDirectSettingsV1. # noqa: E501
183
+ :rtype: bool
184
+ """
185
+ return self._persist_pods_logs
186
+
187
+ @persist_pods_logs.setter
188
+ def persist_pods_logs(self, persist_pods_logs: 'bool'):
189
+ """Sets the persist_pods_logs of this V1KubernetesDirectSettingsV1.
190
+
191
+
192
+ :param persist_pods_logs: The persist_pods_logs of this V1KubernetesDirectSettingsV1. # noqa: E501
193
+ :type: bool
194
+ """
195
+
196
+ self._persist_pods_logs = persist_pods_logs
197
+
146
198
  @property
147
199
  def slack_channel_id(self) -> 'str':
148
200
  """Gets the slack_channel_id of this V1KubernetesDirectSettingsV1. # noqa: E501
@@ -43,14 +43,18 @@ class V1KubernetesDirectV1(object):
43
43
  swagger_types = {
44
44
  'automate_agent_installation': 'bool',
45
45
  'aws': 'V1KubernetesAWSConfig',
46
+ 'container_registry_integration': 'V1ContainerRegistryIntegration',
46
47
  'grafana_dashboard_url': 'str',
47
48
  'grafana_namespace': 'str',
48
49
  'grafana_service_name': 'str',
49
50
  'grafana_service_port': 'str',
51
+ 'incident_alert_notifications': 'list[V1K8sIncidentSetting]',
52
+ 'incident_auto_cordon': 'list[V1K8sIncidentSetting]',
50
53
  'incident_historical_scan_complete': 'bool',
51
54
  'incident_slack_notifiers': 'list[V1SlackNotifier]',
52
55
  'kubeconfig': 'str',
53
56
  'kubeconfig_elevated': 'str',
57
+ 'kubevirt_config': 'V1KubevirtConfig',
54
58
  'prometheus_url': 'str',
55
59
  'settings': 'V1KubernetesDirectSettingsV1',
56
60
  'skip_user_label_injection': 'bool'
@@ -59,31 +63,39 @@ class V1KubernetesDirectV1(object):
59
63
  attribute_map = {
60
64
  'automate_agent_installation': 'automateAgentInstallation',
61
65
  'aws': 'aws',
66
+ 'container_registry_integration': 'containerRegistryIntegration',
62
67
  'grafana_dashboard_url': 'grafanaDashboardUrl',
63
68
  'grafana_namespace': 'grafanaNamespace',
64
69
  'grafana_service_name': 'grafanaServiceName',
65
70
  'grafana_service_port': 'grafanaServicePort',
71
+ 'incident_alert_notifications': 'incidentAlertNotifications',
72
+ 'incident_auto_cordon': 'incidentAutoCordon',
66
73
  'incident_historical_scan_complete': 'incidentHistoricalScanComplete',
67
74
  'incident_slack_notifiers': 'incidentSlackNotifiers',
68
75
  'kubeconfig': 'kubeconfig',
69
76
  'kubeconfig_elevated': 'kubeconfigElevated',
77
+ 'kubevirt_config': 'kubevirtConfig',
70
78
  'prometheus_url': 'prometheusUrl',
71
79
  'settings': 'settings',
72
80
  'skip_user_label_injection': 'skipUserLabelInjection'
73
81
  }
74
82
 
75
- def __init__(self, automate_agent_installation: 'bool' =None, aws: 'V1KubernetesAWSConfig' =None, grafana_dashboard_url: 'str' =None, grafana_namespace: 'str' =None, grafana_service_name: 'str' =None, grafana_service_port: 'str' =None, incident_historical_scan_complete: 'bool' =None, incident_slack_notifiers: 'list[V1SlackNotifier]' =None, kubeconfig: 'str' =None, kubeconfig_elevated: 'str' =None, prometheus_url: 'str' =None, settings: 'V1KubernetesDirectSettingsV1' =None, skip_user_label_injection: 'bool' =None): # noqa: E501
83
+ def __init__(self, automate_agent_installation: 'bool' =None, aws: 'V1KubernetesAWSConfig' =None, container_registry_integration: 'V1ContainerRegistryIntegration' =None, grafana_dashboard_url: 'str' =None, grafana_namespace: 'str' =None, grafana_service_name: 'str' =None, grafana_service_port: 'str' =None, incident_alert_notifications: 'list[V1K8sIncidentSetting]' =None, incident_auto_cordon: 'list[V1K8sIncidentSetting]' =None, incident_historical_scan_complete: 'bool' =None, incident_slack_notifiers: 'list[V1SlackNotifier]' =None, kubeconfig: 'str' =None, kubeconfig_elevated: 'str' =None, kubevirt_config: 'V1KubevirtConfig' =None, prometheus_url: 'str' =None, settings: 'V1KubernetesDirectSettingsV1' =None, skip_user_label_injection: 'bool' =None): # noqa: E501
76
84
  """V1KubernetesDirectV1 - a model defined in Swagger""" # noqa: E501
77
85
  self._automate_agent_installation = None
78
86
  self._aws = None
87
+ self._container_registry_integration = None
79
88
  self._grafana_dashboard_url = None
80
89
  self._grafana_namespace = None
81
90
  self._grafana_service_name = None
82
91
  self._grafana_service_port = None
92
+ self._incident_alert_notifications = None
93
+ self._incident_auto_cordon = None
83
94
  self._incident_historical_scan_complete = None
84
95
  self._incident_slack_notifiers = None
85
96
  self._kubeconfig = None
86
97
  self._kubeconfig_elevated = None
98
+ self._kubevirt_config = None
87
99
  self._prometheus_url = None
88
100
  self._settings = None
89
101
  self._skip_user_label_injection = None
@@ -92,6 +104,8 @@ class V1KubernetesDirectV1(object):
92
104
  self.automate_agent_installation = automate_agent_installation
93
105
  if aws is not None:
94
106
  self.aws = aws
107
+ if container_registry_integration is not None:
108
+ self.container_registry_integration = container_registry_integration
95
109
  if grafana_dashboard_url is not None:
96
110
  self.grafana_dashboard_url = grafana_dashboard_url
97
111
  if grafana_namespace is not None:
@@ -100,6 +114,10 @@ class V1KubernetesDirectV1(object):
100
114
  self.grafana_service_name = grafana_service_name
101
115
  if grafana_service_port is not None:
102
116
  self.grafana_service_port = grafana_service_port
117
+ if incident_alert_notifications is not None:
118
+ self.incident_alert_notifications = incident_alert_notifications
119
+ if incident_auto_cordon is not None:
120
+ self.incident_auto_cordon = incident_auto_cordon
103
121
  if incident_historical_scan_complete is not None:
104
122
  self.incident_historical_scan_complete = incident_historical_scan_complete
105
123
  if incident_slack_notifiers is not None:
@@ -108,6 +126,8 @@ class V1KubernetesDirectV1(object):
108
126
  self.kubeconfig = kubeconfig
109
127
  if kubeconfig_elevated is not None:
110
128
  self.kubeconfig_elevated = kubeconfig_elevated
129
+ if kubevirt_config is not None:
130
+ self.kubevirt_config = kubevirt_config
111
131
  if prometheus_url is not None:
112
132
  self.prometheus_url = prometheus_url
113
133
  if settings is not None:
@@ -157,6 +177,27 @@ class V1KubernetesDirectV1(object):
157
177
 
158
178
  self._aws = aws
159
179
 
180
+ @property
181
+ def container_registry_integration(self) -> 'V1ContainerRegistryIntegration':
182
+ """Gets the container_registry_integration of this V1KubernetesDirectV1. # noqa: E501
183
+
184
+
185
+ :return: The container_registry_integration of this V1KubernetesDirectV1. # noqa: E501
186
+ :rtype: V1ContainerRegistryIntegration
187
+ """
188
+ return self._container_registry_integration
189
+
190
+ @container_registry_integration.setter
191
+ def container_registry_integration(self, container_registry_integration: 'V1ContainerRegistryIntegration'):
192
+ """Sets the container_registry_integration of this V1KubernetesDirectV1.
193
+
194
+
195
+ :param container_registry_integration: The container_registry_integration of this V1KubernetesDirectV1. # noqa: E501
196
+ :type: V1ContainerRegistryIntegration
197
+ """
198
+
199
+ self._container_registry_integration = container_registry_integration
200
+
160
201
  @property
161
202
  def grafana_dashboard_url(self) -> 'str':
162
203
  """Gets the grafana_dashboard_url of this V1KubernetesDirectV1. # noqa: E501
@@ -241,6 +282,48 @@ class V1KubernetesDirectV1(object):
241
282
 
242
283
  self._grafana_service_port = grafana_service_port
243
284
 
285
+ @property
286
+ def incident_alert_notifications(self) -> 'list[V1K8sIncidentSetting]':
287
+ """Gets the incident_alert_notifications of this V1KubernetesDirectV1. # noqa: E501
288
+
289
+
290
+ :return: The incident_alert_notifications of this V1KubernetesDirectV1. # noqa: E501
291
+ :rtype: list[V1K8sIncidentSetting]
292
+ """
293
+ return self._incident_alert_notifications
294
+
295
+ @incident_alert_notifications.setter
296
+ def incident_alert_notifications(self, incident_alert_notifications: 'list[V1K8sIncidentSetting]'):
297
+ """Sets the incident_alert_notifications of this V1KubernetesDirectV1.
298
+
299
+
300
+ :param incident_alert_notifications: The incident_alert_notifications of this V1KubernetesDirectV1. # noqa: E501
301
+ :type: list[V1K8sIncidentSetting]
302
+ """
303
+
304
+ self._incident_alert_notifications = incident_alert_notifications
305
+
306
+ @property
307
+ def incident_auto_cordon(self) -> 'list[V1K8sIncidentSetting]':
308
+ """Gets the incident_auto_cordon of this V1KubernetesDirectV1. # noqa: E501
309
+
310
+
311
+ :return: The incident_auto_cordon of this V1KubernetesDirectV1. # noqa: E501
312
+ :rtype: list[V1K8sIncidentSetting]
313
+ """
314
+ return self._incident_auto_cordon
315
+
316
+ @incident_auto_cordon.setter
317
+ def incident_auto_cordon(self, incident_auto_cordon: 'list[V1K8sIncidentSetting]'):
318
+ """Sets the incident_auto_cordon of this V1KubernetesDirectV1.
319
+
320
+
321
+ :param incident_auto_cordon: The incident_auto_cordon of this V1KubernetesDirectV1. # noqa: E501
322
+ :type: list[V1K8sIncidentSetting]
323
+ """
324
+
325
+ self._incident_auto_cordon = incident_auto_cordon
326
+
244
327
  @property
245
328
  def incident_historical_scan_complete(self) -> 'bool':
246
329
  """Gets the incident_historical_scan_complete of this V1KubernetesDirectV1. # noqa: E501
@@ -325,6 +408,27 @@ class V1KubernetesDirectV1(object):
325
408
 
326
409
  self._kubeconfig_elevated = kubeconfig_elevated
327
410
 
411
+ @property
412
+ def kubevirt_config(self) -> 'V1KubevirtConfig':
413
+ """Gets the kubevirt_config of this V1KubernetesDirectV1. # noqa: E501
414
+
415
+
416
+ :return: The kubevirt_config of this V1KubernetesDirectV1. # noqa: E501
417
+ :rtype: V1KubevirtConfig
418
+ """
419
+ return self._kubevirt_config
420
+
421
+ @kubevirt_config.setter
422
+ def kubevirt_config(self, kubevirt_config: 'V1KubevirtConfig'):
423
+ """Sets the kubevirt_config of this V1KubernetesDirectV1.
424
+
425
+
426
+ :param kubevirt_config: The kubevirt_config of this V1KubernetesDirectV1. # noqa: E501
427
+ :type: V1KubevirtConfig
428
+ """
429
+
430
+ self._kubevirt_config = kubevirt_config
431
+
328
432
  @property
329
433
  def prometheus_url(self) -> 'str':
330
434
  """Gets the prometheus_url of this V1KubernetesDirectV1. # noqa: E501