lightning-sdk 2025.9.4__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 (36) 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 +14 -0
  5. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +744 -13
  6. lightning_sdk/lightning_cloud/openapi/models/__init__.py +14 -0
  7. lightning_sdk/lightning_cloud/openapi/models/id_render_body.py +123 -0
  8. lightning_sdk/lightning_cloud/openapi/models/kubernetestemplates_id_body.py +227 -0
  9. lightning_sdk/lightning_cloud/openapi/models/metricsstream_create_body.py +27 -1
  10. lightning_sdk/lightning_cloud/openapi/models/project_id_kubernetestemplates_body.py +227 -0
  11. lightning_sdk/lightning_cloud/openapi/models/v1_ai_pod_v1.py +53 -1
  12. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +27 -1
  13. lightning_sdk/lightning_cloud/openapi/models/v1_delete_kubernetes_template_response.py +97 -0
  14. lightning_sdk/lightning_cloud/openapi/models/v1_firewall_rule.py +175 -0
  15. lightning_sdk/lightning_cloud/openapi/models/v1_incident_event.py +565 -0
  16. lightning_sdk/lightning_cloud/openapi/models/v1_incident_severity.py +105 -0
  17. lightning_sdk/lightning_cloud/openapi/models/v1_incident_type.py +105 -0
  18. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_indexes.py +149 -0
  19. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_template.py +383 -0
  20. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_template_property.py +227 -0
  21. lightning_sdk/lightning_cloud/openapi/models/v1_list_incident_events_response.py +123 -0
  22. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_templates_response.py +123 -0
  23. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +27 -1
  24. lightning_sdk/lightning_cloud/openapi/models/v1_quote_annual_upsell_response.py +29 -3
  25. lightning_sdk/lightning_cloud/openapi/models/v1_render_kubernetes_template_response.py +123 -0
  26. lightning_sdk/lightning_cloud/openapi/models/v1_secret_type.py +1 -0
  27. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +154 -102
  28. lightning_sdk/llm/llm.py +82 -7
  29. lightning_sdk/llm/public_assistants.py +2 -2
  30. lightning_sdk/studio.py +30 -3
  31. {lightning_sdk-2025.9.4.dist-info → lightning_sdk-2025.9.10.dist-info}/METADATA +1 -1
  32. {lightning_sdk-2025.9.4.dist-info → lightning_sdk-2025.9.10.dist-info}/RECORD +36 -22
  33. {lightning_sdk-2025.9.4.dist-info → lightning_sdk-2025.9.10.dist-info}/entry_points.txt +1 -0
  34. {lightning_sdk-2025.9.4.dist-info → lightning_sdk-2025.9.10.dist-info}/LICENSE +0 -0
  35. {lightning_sdk-2025.9.4.dist-info → lightning_sdk-2025.9.10.dist-info}/WHEEL +0 -0
  36. {lightning_sdk-2025.9.4.dist-info → lightning_sdk-2025.9.10.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,227 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ external/v1/auth_service.proto
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: version not set
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+
12
+ NOTE
13
+ ----
14
+ standard swagger-codegen-cli for this python client has been modified
15
+ by custom templates. The purpose of these templates is to include
16
+ typing information in the API and Model code. Please refer to the
17
+ main grid repository for more info
18
+ """
19
+
20
+ import pprint
21
+ import re # noqa: F401
22
+
23
+ from typing import TYPE_CHECKING
24
+
25
+ import six
26
+
27
+ if TYPE_CHECKING:
28
+ from datetime import datetime
29
+ from lightning_sdk.lightning_cloud.openapi.models import *
30
+
31
+ class ProjectIdKubernetestemplatesBody(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
+ 'cluster_id': 'str',
45
+ 'description': 'str',
46
+ 'name': 'str',
47
+ 'properties': 'list[V1KubernetesTemplateProperty]',
48
+ 'spec': 'str'
49
+ }
50
+
51
+ attribute_map = {
52
+ 'cluster_id': 'clusterId',
53
+ 'description': 'description',
54
+ 'name': 'name',
55
+ 'properties': 'properties',
56
+ 'spec': 'spec'
57
+ }
58
+
59
+ def __init__(self, cluster_id: 'str' =None, description: 'str' =None, name: 'str' =None, properties: 'list[V1KubernetesTemplateProperty]' =None, spec: 'str' =None): # noqa: E501
60
+ """ProjectIdKubernetestemplatesBody - a model defined in Swagger""" # noqa: E501
61
+ self._cluster_id = None
62
+ self._description = None
63
+ self._name = None
64
+ self._properties = None
65
+ self._spec = None
66
+ self.discriminator = None
67
+ if cluster_id is not None:
68
+ self.cluster_id = cluster_id
69
+ if description is not None:
70
+ self.description = description
71
+ if name is not None:
72
+ self.name = name
73
+ if properties is not None:
74
+ self.properties = properties
75
+ if spec is not None:
76
+ self.spec = spec
77
+
78
+ @property
79
+ def cluster_id(self) -> 'str':
80
+ """Gets the cluster_id of this ProjectIdKubernetestemplatesBody. # noqa: E501
81
+
82
+
83
+ :return: The cluster_id of this ProjectIdKubernetestemplatesBody. # noqa: E501
84
+ :rtype: str
85
+ """
86
+ return self._cluster_id
87
+
88
+ @cluster_id.setter
89
+ def cluster_id(self, cluster_id: 'str'):
90
+ """Sets the cluster_id of this ProjectIdKubernetestemplatesBody.
91
+
92
+
93
+ :param cluster_id: The cluster_id of this ProjectIdKubernetestemplatesBody. # noqa: E501
94
+ :type: str
95
+ """
96
+
97
+ self._cluster_id = cluster_id
98
+
99
+ @property
100
+ def description(self) -> 'str':
101
+ """Gets the description of this ProjectIdKubernetestemplatesBody. # noqa: E501
102
+
103
+
104
+ :return: The description of this ProjectIdKubernetestemplatesBody. # noqa: E501
105
+ :rtype: str
106
+ """
107
+ return self._description
108
+
109
+ @description.setter
110
+ def description(self, description: 'str'):
111
+ """Sets the description of this ProjectIdKubernetestemplatesBody.
112
+
113
+
114
+ :param description: The description of this ProjectIdKubernetestemplatesBody. # noqa: E501
115
+ :type: str
116
+ """
117
+
118
+ self._description = description
119
+
120
+ @property
121
+ def name(self) -> 'str':
122
+ """Gets the name of this ProjectIdKubernetestemplatesBody. # noqa: E501
123
+
124
+
125
+ :return: The name of this ProjectIdKubernetestemplatesBody. # noqa: E501
126
+ :rtype: str
127
+ """
128
+ return self._name
129
+
130
+ @name.setter
131
+ def name(self, name: 'str'):
132
+ """Sets the name of this ProjectIdKubernetestemplatesBody.
133
+
134
+
135
+ :param name: The name of this ProjectIdKubernetestemplatesBody. # noqa: E501
136
+ :type: str
137
+ """
138
+
139
+ self._name = name
140
+
141
+ @property
142
+ def properties(self) -> 'list[V1KubernetesTemplateProperty]':
143
+ """Gets the properties of this ProjectIdKubernetestemplatesBody. # noqa: E501
144
+
145
+
146
+ :return: The properties of this ProjectIdKubernetestemplatesBody. # noqa: E501
147
+ :rtype: list[V1KubernetesTemplateProperty]
148
+ """
149
+ return self._properties
150
+
151
+ @properties.setter
152
+ def properties(self, properties: 'list[V1KubernetesTemplateProperty]'):
153
+ """Sets the properties of this ProjectIdKubernetestemplatesBody.
154
+
155
+
156
+ :param properties: The properties of this ProjectIdKubernetestemplatesBody. # noqa: E501
157
+ :type: list[V1KubernetesTemplateProperty]
158
+ """
159
+
160
+ self._properties = properties
161
+
162
+ @property
163
+ def spec(self) -> 'str':
164
+ """Gets the spec of this ProjectIdKubernetestemplatesBody. # noqa: E501
165
+
166
+
167
+ :return: The spec of this ProjectIdKubernetestemplatesBody. # noqa: E501
168
+ :rtype: str
169
+ """
170
+ return self._spec
171
+
172
+ @spec.setter
173
+ def spec(self, spec: 'str'):
174
+ """Sets the spec of this ProjectIdKubernetestemplatesBody.
175
+
176
+
177
+ :param spec: The spec of this ProjectIdKubernetestemplatesBody. # noqa: E501
178
+ :type: str
179
+ """
180
+
181
+ self._spec = spec
182
+
183
+ def to_dict(self) -> dict:
184
+ """Returns the model properties as a dict"""
185
+ result = {}
186
+
187
+ for attr, _ in six.iteritems(self.swagger_types):
188
+ value = getattr(self, attr)
189
+ if isinstance(value, list):
190
+ result[attr] = list(map(
191
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
192
+ value
193
+ ))
194
+ elif hasattr(value, "to_dict"):
195
+ result[attr] = value.to_dict()
196
+ elif isinstance(value, dict):
197
+ result[attr] = dict(map(
198
+ lambda item: (item[0], item[1].to_dict())
199
+ if hasattr(item[1], "to_dict") else item,
200
+ value.items()
201
+ ))
202
+ else:
203
+ result[attr] = value
204
+ if issubclass(ProjectIdKubernetestemplatesBody, dict):
205
+ for key, value in self.items():
206
+ result[key] = value
207
+
208
+ return result
209
+
210
+ def to_str(self) -> str:
211
+ """Returns the string representation of the model"""
212
+ return pprint.pformat(self.to_dict())
213
+
214
+ def __repr__(self) -> str:
215
+ """For `print` and `pprint`"""
216
+ return self.to_str()
217
+
218
+ def __eq__(self, other: 'ProjectIdKubernetestemplatesBody') -> bool:
219
+ """Returns true if both objects are equal"""
220
+ if not isinstance(other, ProjectIdKubernetestemplatesBody):
221
+ return False
222
+
223
+ return self.__dict__ == other.__dict__
224
+
225
+ def __ne__(self, other: 'ProjectIdKubernetestemplatesBody') -> bool:
226
+ """Returns true if both objects are not equal"""
227
+ return not self == other
@@ -41,20 +41,72 @@ class V1AiPodV1(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
+ 'ansible_credential_id': 'str',
45
+ 'ansible_username': 'str',
44
46
  'organization_id': 'str'
45
47
  }
46
48
 
47
49
  attribute_map = {
50
+ 'ansible_credential_id': 'ansibleCredentialId',
51
+ 'ansible_username': 'ansibleUsername',
48
52
  'organization_id': 'organizationId'
49
53
  }
50
54
 
51
- def __init__(self, organization_id: 'str' =None): # noqa: E501
55
+ def __init__(self, ansible_credential_id: 'str' =None, ansible_username: 'str' =None, organization_id: 'str' =None): # noqa: E501
52
56
  """V1AiPodV1 - a model defined in Swagger""" # noqa: E501
57
+ self._ansible_credential_id = None
58
+ self._ansible_username = None
53
59
  self._organization_id = None
54
60
  self.discriminator = None
61
+ if ansible_credential_id is not None:
62
+ self.ansible_credential_id = ansible_credential_id
63
+ if ansible_username is not None:
64
+ self.ansible_username = ansible_username
55
65
  if organization_id is not None:
56
66
  self.organization_id = organization_id
57
67
 
68
+ @property
69
+ def ansible_credential_id(self) -> 'str':
70
+ """Gets the ansible_credential_id of this V1AiPodV1. # noqa: E501
71
+
72
+
73
+ :return: The ansible_credential_id of this V1AiPodV1. # noqa: E501
74
+ :rtype: str
75
+ """
76
+ return self._ansible_credential_id
77
+
78
+ @ansible_credential_id.setter
79
+ def ansible_credential_id(self, ansible_credential_id: 'str'):
80
+ """Sets the ansible_credential_id of this V1AiPodV1.
81
+
82
+
83
+ :param ansible_credential_id: The ansible_credential_id of this V1AiPodV1. # noqa: E501
84
+ :type: str
85
+ """
86
+
87
+ self._ansible_credential_id = ansible_credential_id
88
+
89
+ @property
90
+ def ansible_username(self) -> 'str':
91
+ """Gets the ansible_username of this V1AiPodV1. # noqa: E501
92
+
93
+
94
+ :return: The ansible_username of this V1AiPodV1. # noqa: E501
95
+ :rtype: str
96
+ """
97
+ return self._ansible_username
98
+
99
+ @ansible_username.setter
100
+ def ansible_username(self, ansible_username: 'str'):
101
+ """Sets the ansible_username of this V1AiPodV1.
102
+
103
+
104
+ :param ansible_username: The ansible_username of this V1AiPodV1. # noqa: E501
105
+ :type: str
106
+ """
107
+
108
+ self._ansible_username = ansible_username
109
+
58
110
  @property
59
111
  def organization_id(self) -> 'str':
60
112
  """Gets the organization_id of this V1AiPodV1. # noqa: E501
@@ -51,6 +51,7 @@ class V1ClusterSecurityOptions(object):
51
51
  'encrypt_instance_volumes': 'bool',
52
52
  'exposed_ports': 'list[str]',
53
53
  'extra_firewall_cidr_ranges': 'list[str]',
54
+ 'extra_firewall_rules': 'list[V1FirewallRule]',
54
55
  'extra_policy': 'str',
55
56
  'extra_sa_scopes': 'list[str]',
56
57
  'kms_key_id': 'str',
@@ -71,6 +72,7 @@ class V1ClusterSecurityOptions(object):
71
72
  'encrypt_instance_volumes': 'encryptInstanceVolumes',
72
73
  'exposed_ports': 'exposedPorts',
73
74
  'extra_firewall_cidr_ranges': 'extraFirewallCidrRanges',
75
+ 'extra_firewall_rules': 'extraFirewallRules',
74
76
  'extra_policy': 'extraPolicy',
75
77
  'extra_sa_scopes': 'extraSaScopes',
76
78
  'kms_key_id': 'kmsKeyId',
@@ -80,7 +82,7 @@ class V1ClusterSecurityOptions(object):
80
82
  'ssh_disabled': 'sshDisabled'
81
83
  }
82
84
 
83
- def __init__(self, bucket_kms_key: 'str' =None, cloud_init_boot_cmds: 'list[str]' =None, cloud_init_run_cmds: 'list[str]' =None, containers_non_privileged: 'bool' =None, disable_public_ip: 'bool' =None, disabled_services: 'list[str]' =None, encrypt_cluster_bucket: 'bool' =None, encrypt_instance_volumes: 'bool' =None, exposed_ports: 'list[str]' =None, extra_firewall_cidr_ranges: 'list[str]' =None, extra_policy: 'str' =None, extra_sa_scopes: 'list[str]' =None, kms_key_id: 'str' =None, protect_instance_metadata: 'bool' =None, rootless_docker: 'bool' =None, setup_network_load_balancer: 'bool' =None, ssh_disabled: 'bool' =None): # noqa: E501
85
+ def __init__(self, bucket_kms_key: 'str' =None, cloud_init_boot_cmds: 'list[str]' =None, cloud_init_run_cmds: 'list[str]' =None, containers_non_privileged: 'bool' =None, disable_public_ip: 'bool' =None, disabled_services: 'list[str]' =None, encrypt_cluster_bucket: 'bool' =None, encrypt_instance_volumes: 'bool' =None, exposed_ports: 'list[str]' =None, extra_firewall_cidr_ranges: 'list[str]' =None, extra_firewall_rules: 'list[V1FirewallRule]' =None, extra_policy: 'str' =None, extra_sa_scopes: 'list[str]' =None, kms_key_id: 'str' =None, protect_instance_metadata: 'bool' =None, rootless_docker: 'bool' =None, setup_network_load_balancer: 'bool' =None, ssh_disabled: 'bool' =None): # noqa: E501
84
86
  """V1ClusterSecurityOptions - a model defined in Swagger""" # noqa: E501
85
87
  self._bucket_kms_key = None
86
88
  self._cloud_init_boot_cmds = None
@@ -92,6 +94,7 @@ class V1ClusterSecurityOptions(object):
92
94
  self._encrypt_instance_volumes = None
93
95
  self._exposed_ports = None
94
96
  self._extra_firewall_cidr_ranges = None
97
+ self._extra_firewall_rules = None
95
98
  self._extra_policy = None
96
99
  self._extra_sa_scopes = None
97
100
  self._kms_key_id = None
@@ -120,6 +123,8 @@ class V1ClusterSecurityOptions(object):
120
123
  self.exposed_ports = exposed_ports
121
124
  if extra_firewall_cidr_ranges is not None:
122
125
  self.extra_firewall_cidr_ranges = extra_firewall_cidr_ranges
126
+ if extra_firewall_rules is not None:
127
+ self.extra_firewall_rules = extra_firewall_rules
123
128
  if extra_policy is not None:
124
129
  self.extra_policy = extra_policy
125
130
  if extra_sa_scopes is not None:
@@ -345,6 +350,27 @@ class V1ClusterSecurityOptions(object):
345
350
 
346
351
  self._extra_firewall_cidr_ranges = extra_firewall_cidr_ranges
347
352
 
353
+ @property
354
+ def extra_firewall_rules(self) -> 'list[V1FirewallRule]':
355
+ """Gets the extra_firewall_rules of this V1ClusterSecurityOptions. # noqa: E501
356
+
357
+
358
+ :return: The extra_firewall_rules of this V1ClusterSecurityOptions. # noqa: E501
359
+ :rtype: list[V1FirewallRule]
360
+ """
361
+ return self._extra_firewall_rules
362
+
363
+ @extra_firewall_rules.setter
364
+ def extra_firewall_rules(self, extra_firewall_rules: 'list[V1FirewallRule]'):
365
+ """Sets the extra_firewall_rules of this V1ClusterSecurityOptions.
366
+
367
+
368
+ :param extra_firewall_rules: The extra_firewall_rules of this V1ClusterSecurityOptions. # noqa: E501
369
+ :type: list[V1FirewallRule]
370
+ """
371
+
372
+ self._extra_firewall_rules = extra_firewall_rules
373
+
348
374
  @property
349
375
  def extra_policy(self) -> 'str':
350
376
  """Gets the extra_policy of this V1ClusterSecurityOptions. # noqa: E501
@@ -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 V1DeleteKubernetesTemplateResponse(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
+ """V1DeleteKubernetesTemplateResponse - 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(V1DeleteKubernetesTemplateResponse, 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: 'V1DeleteKubernetesTemplateResponse') -> bool:
89
+ """Returns true if both objects are equal"""
90
+ if not isinstance(other, V1DeleteKubernetesTemplateResponse):
91
+ return False
92
+
93
+ return self.__dict__ == other.__dict__
94
+
95
+ def __ne__(self, other: 'V1DeleteKubernetesTemplateResponse') -> bool:
96
+ """Returns true if both objects are not equal"""
97
+ return not self == other
@@ -0,0 +1,175 @@
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 V1FirewallRule(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
+ 'name': 'str',
45
+ 'ports': 'str',
46
+ 'source_cidrs': 'list[str]'
47
+ }
48
+
49
+ attribute_map = {
50
+ 'name': 'name',
51
+ 'ports': 'ports',
52
+ 'source_cidrs': 'sourceCidrs'
53
+ }
54
+
55
+ def __init__(self, name: 'str' =None, ports: 'str' =None, source_cidrs: 'list[str]' =None): # noqa: E501
56
+ """V1FirewallRule - a model defined in Swagger""" # noqa: E501
57
+ self._name = None
58
+ self._ports = None
59
+ self._source_cidrs = None
60
+ self.discriminator = None
61
+ if name is not None:
62
+ self.name = name
63
+ if ports is not None:
64
+ self.ports = ports
65
+ if source_cidrs is not None:
66
+ self.source_cidrs = source_cidrs
67
+
68
+ @property
69
+ def name(self) -> 'str':
70
+ """Gets the name of this V1FirewallRule. # noqa: E501
71
+
72
+
73
+ :return: The name of this V1FirewallRule. # noqa: E501
74
+ :rtype: str
75
+ """
76
+ return self._name
77
+
78
+ @name.setter
79
+ def name(self, name: 'str'):
80
+ """Sets the name of this V1FirewallRule.
81
+
82
+
83
+ :param name: The name of this V1FirewallRule. # noqa: E501
84
+ :type: str
85
+ """
86
+
87
+ self._name = name
88
+
89
+ @property
90
+ def ports(self) -> 'str':
91
+ """Gets the ports of this V1FirewallRule. # noqa: E501
92
+
93
+
94
+ :return: The ports of this V1FirewallRule. # noqa: E501
95
+ :rtype: str
96
+ """
97
+ return self._ports
98
+
99
+ @ports.setter
100
+ def ports(self, ports: 'str'):
101
+ """Sets the ports of this V1FirewallRule.
102
+
103
+
104
+ :param ports: The ports of this V1FirewallRule. # noqa: E501
105
+ :type: str
106
+ """
107
+
108
+ self._ports = ports
109
+
110
+ @property
111
+ def source_cidrs(self) -> 'list[str]':
112
+ """Gets the source_cidrs of this V1FirewallRule. # noqa: E501
113
+
114
+
115
+ :return: The source_cidrs of this V1FirewallRule. # noqa: E501
116
+ :rtype: list[str]
117
+ """
118
+ return self._source_cidrs
119
+
120
+ @source_cidrs.setter
121
+ def source_cidrs(self, source_cidrs: 'list[str]'):
122
+ """Sets the source_cidrs of this V1FirewallRule.
123
+
124
+
125
+ :param source_cidrs: The source_cidrs of this V1FirewallRule. # noqa: E501
126
+ :type: list[str]
127
+ """
128
+
129
+ self._source_cidrs = source_cidrs
130
+
131
+ def to_dict(self) -> dict:
132
+ """Returns the model properties as a dict"""
133
+ result = {}
134
+
135
+ for attr, _ in six.iteritems(self.swagger_types):
136
+ value = getattr(self, attr)
137
+ if isinstance(value, list):
138
+ result[attr] = list(map(
139
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
140
+ value
141
+ ))
142
+ elif hasattr(value, "to_dict"):
143
+ result[attr] = value.to_dict()
144
+ elif isinstance(value, dict):
145
+ result[attr] = dict(map(
146
+ lambda item: (item[0], item[1].to_dict())
147
+ if hasattr(item[1], "to_dict") else item,
148
+ value.items()
149
+ ))
150
+ else:
151
+ result[attr] = value
152
+ if issubclass(V1FirewallRule, dict):
153
+ for key, value in self.items():
154
+ result[key] = value
155
+
156
+ return result
157
+
158
+ def to_str(self) -> str:
159
+ """Returns the string representation of the model"""
160
+ return pprint.pformat(self.to_dict())
161
+
162
+ def __repr__(self) -> str:
163
+ """For `print` and `pprint`"""
164
+ return self.to_str()
165
+
166
+ def __eq__(self, other: 'V1FirewallRule') -> bool:
167
+ """Returns true if both objects are equal"""
168
+ if not isinstance(other, V1FirewallRule):
169
+ return False
170
+
171
+ return self.__dict__ == other.__dict__
172
+
173
+ def __ne__(self, other: 'V1FirewallRule') -> bool:
174
+ """Returns true if both objects are not equal"""
175
+ return not self == other