Py4HEAppE 1.0.0__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 (183) hide show
  1. __init__.py +1 -0
  2. py4heappe/__init__.py +1 -0
  3. py4heappe/cli/__init__.py +1 -0
  4. py4heappe/cli/auth.py +153 -0
  5. py4heappe/cli/command_template.py +370 -0
  6. py4heappe/cli/configuration.py +65 -0
  7. py4heappe/cli/information.py +163 -0
  8. py4heappe/cli/job_management.py +211 -0
  9. py4heappe/cli/report.py +173 -0
  10. py4heappe/core/__init__.py +167 -0
  11. py4heappe/core/api/__init__.py +12 -0
  12. py4heappe/core/api/cluster_information_api.py +308 -0
  13. py4heappe/core/api/data_transfer_api.py +405 -0
  14. py4heappe/core/api/file_transfer_api.py +498 -0
  15. py4heappe/core/api/job_management_api.py +866 -0
  16. py4heappe/core/api/job_reporting_api.py +692 -0
  17. py4heappe/core/api/management_api.py +2540 -0
  18. py4heappe/core/api/user_and_limitation_management_api.py +676 -0
  19. py4heappe/core/api_client.py +632 -0
  20. py4heappe/core/base/__init__.py +1 -0
  21. py4heappe/core/base/exceptions.py +41 -0
  22. py4heappe/core/base/logger.py +11 -0
  23. py4heappe/core/base/utils.py +43 -0
  24. py4heappe/core/configuration.py +247 -0
  25. py4heappe/core/models/__init__.py +155 -0
  26. py4heappe/core/models/adaptor_user.py +398 -0
  27. py4heappe/core/models/adaptor_user_group.py +268 -0
  28. py4heappe/core/models/adaptor_user_role.py +242 -0
  29. py4heappe/core/models/adaptor_user_role_ext.py +138 -0
  30. py4heappe/core/models/adaptor_user_role_type.py +95 -0
  31. py4heappe/core/models/adaptor_user_type.py +91 -0
  32. py4heappe/core/models/adaptor_user_user_group_role.py +320 -0
  33. py4heappe/core/models/allocated_nodes_ips_model.py +136 -0
  34. py4heappe/core/models/authenticate_lexis_token_model.py +110 -0
  35. py4heappe/core/models/authenticate_user_digital_signature_model.py +110 -0
  36. py4heappe/core/models/authenticate_user_open_id_model.py +110 -0
  37. py4heappe/core/models/authenticate_user_open_id_open_stack_model.py +136 -0
  38. py4heappe/core/models/authenticate_user_password_model.py +110 -0
  39. py4heappe/core/models/authentication_credentials.py +110 -0
  40. py4heappe/core/models/bad_request_result.py +110 -0
  41. py4heappe/core/models/cancel_job_model.py +136 -0
  42. py4heappe/core/models/cluster.py +478 -0
  43. py4heappe/core/models/cluster_authentication_credentials.py +375 -0
  44. py4heappe/core/models/cluster_authentication_credentials_auth_type.py +97 -0
  45. py4heappe/core/models/cluster_connection_protocol.py +91 -0
  46. py4heappe/core/models/cluster_detailed_report_ext.py +214 -0
  47. py4heappe/core/models/cluster_ext.py +188 -0
  48. py4heappe/core/models/cluster_init_report_ext.py +136 -0
  49. py4heappe/core/models/cluster_node_type.py +528 -0
  50. py4heappe/core/models/cluster_node_type_detailed_report_ext.py +240 -0
  51. py4heappe/core/models/cluster_node_type_ext.py +292 -0
  52. py4heappe/core/models/cluster_node_type_for_task_ext.py +188 -0
  53. py4heappe/core/models/cluster_node_type_report_ext.py +214 -0
  54. py4heappe/core/models/cluster_node_type_requested_group.py +136 -0
  55. py4heappe/core/models/cluster_node_type_resource_usage_ext.py +292 -0
  56. py4heappe/core/models/cluster_node_usage_ext.py +318 -0
  57. py4heappe/core/models/cluster_project.py +347 -0
  58. py4heappe/core/models/cluster_project_credential.py +294 -0
  59. py4heappe/core/models/cluster_proxy_connection.py +243 -0
  60. py4heappe/core/models/cluster_proxy_connection_ext.py +214 -0
  61. py4heappe/core/models/cluster_report_ext.py +215 -0
  62. py4heappe/core/models/command_template.py +557 -0
  63. py4heappe/core/models/command_template_ext.py +240 -0
  64. py4heappe/core/models/command_template_parameter.py +347 -0
  65. py4heappe/core/models/command_template_parameter_ext.py +136 -0
  66. py4heappe/core/models/command_template_parameter_value_ext.py +136 -0
  67. py4heappe/core/models/contact.py +269 -0
  68. py4heappe/core/models/copy_job_data_from_temp_model.py +162 -0
  69. py4heappe/core/models/copy_job_data_to_temp_model.py +162 -0
  70. py4heappe/core/models/create_command_inner_template_parameter_model.py +162 -0
  71. py4heappe/core/models/create_command_template_from_generic_model.py +292 -0
  72. py4heappe/core/models/create_command_template_model.py +318 -0
  73. py4heappe/core/models/create_command_template_parameter_model.py +214 -0
  74. py4heappe/core/models/create_job_by_project_model.py +136 -0
  75. py4heappe/core/models/create_project_assignment_to_cluster_model.py +188 -0
  76. py4heappe/core/models/create_project_model.py +318 -0
  77. py4heappe/core/models/create_secure_shell_key_model.py +162 -0
  78. py4heappe/core/models/create_secure_shell_key_model_obsolete.py +188 -0
  79. py4heappe/core/models/current_cluster_node_usage_model.py +136 -0
  80. py4heappe/core/models/current_info_for_job_model.py +136 -0
  81. py4heappe/core/models/data_transfer_method_ext.py +188 -0
  82. py4heappe/core/models/delete_job_model.py +136 -0
  83. py4heappe/core/models/deployment_type_ext.py +91 -0
  84. py4heappe/core/models/digital_signature_credentials_ext.py +162 -0
  85. py4heappe/core/models/download_file_from_cluster_model.py +162 -0
  86. py4heappe/core/models/download_parts_of_job_files_from_cluster_model.py +162 -0
  87. py4heappe/core/models/end_data_transfer_model.py +136 -0
  88. py4heappe/core/models/end_file_transfer_model.py +162 -0
  89. py4heappe/core/models/environment_variable_ext.py +136 -0
  90. py4heappe/core/models/extended_command_template_ext.py +370 -0
  91. py4heappe/core/models/extended_command_template_parameter_ext.py +188 -0
  92. py4heappe/core/models/extended_project_info_ext.py +318 -0
  93. py4heappe/core/models/file_information_ext.py +136 -0
  94. py4heappe/core/models/file_transfer_cipher_type.py +94 -0
  95. py4heappe/core/models/file_transfer_cipher_type_ext.py +93 -0
  96. py4heappe/core/models/file_transfer_key_credentials_ext.py +240 -0
  97. py4heappe/core/models/file_transfer_method.py +294 -0
  98. py4heappe/core/models/file_transfer_method_ext.py +240 -0
  99. py4heappe/core/models/file_transfer_protocol.py +91 -0
  100. py4heappe/core/models/file_transfer_protocol_ext.py +91 -0
  101. py4heappe/core/models/get_command_template_parameters_name_model.py +188 -0
  102. py4heappe/core/models/get_current_usage_and_limitations_for_current_user_model.py +110 -0
  103. py4heappe/core/models/get_data_transfer_method_model.py +188 -0
  104. py4heappe/core/models/get_file_transfer_method_model.py +136 -0
  105. py4heappe/core/models/http_get_to_job_node_model.py +241 -0
  106. py4heappe/core/models/http_header_ext.py +136 -0
  107. py4heappe/core/models/http_post_to_job_node_model.py +267 -0
  108. py4heappe/core/models/initialize_cluster_script_directory_model.py +162 -0
  109. py4heappe/core/models/instance_information_ext.py +344 -0
  110. py4heappe/core/models/job_detailed_report_ext.py +318 -0
  111. py4heappe/core/models/job_file_content_ext.py +214 -0
  112. py4heappe/core/models/job_report_ext.py +188 -0
  113. py4heappe/core/models/job_specification_by_project_ext.py +448 -0
  114. py4heappe/core/models/job_specification_ext.py +448 -0
  115. py4heappe/core/models/job_state_aggregation_report_ext.py +162 -0
  116. py4heappe/core/models/job_state_ext.py +96 -0
  117. py4heappe/core/models/lexis_credentials_ext.py +137 -0
  118. py4heappe/core/models/list_changed_files_for_job_model.py +136 -0
  119. py4heappe/core/models/list_jobs_for_current_user_model.py +110 -0
  120. py4heappe/core/models/modify_command_template_from_generic_model.py +292 -0
  121. py4heappe/core/models/modify_command_template_model.py +292 -0
  122. py4heappe/core/models/modify_command_template_parameter_model.py +214 -0
  123. py4heappe/core/models/modify_project_assignment_to_cluster_model.py +188 -0
  124. py4heappe/core/models/modify_project_model.py +292 -0
  125. py4heappe/core/models/node_used_cores_and_limitation_ext.py +110 -0
  126. py4heappe/core/models/open_id_credentials_ext.py +137 -0
  127. py4heappe/core/models/open_stack_application_credentials_ext.py +136 -0
  128. py4heappe/core/models/password_credentials_ext.py +136 -0
  129. py4heappe/core/models/problem_details.py +89 -0
  130. py4heappe/core/models/project.py +482 -0
  131. py4heappe/core/models/project_contact.py +215 -0
  132. py4heappe/core/models/project_detailed_report_ext.py +292 -0
  133. py4heappe/core/models/project_ext.py +266 -0
  134. py4heappe/core/models/project_for_task_ext.py +214 -0
  135. py4heappe/core/models/project_list_report_ext.py +214 -0
  136. py4heappe/core/models/project_reference_ext.py +137 -0
  137. py4heappe/core/models/project_report_ext.py +240 -0
  138. py4heappe/core/models/project_resource_usage_ext.py +266 -0
  139. py4heappe/core/models/proxy_type.py +91 -0
  140. py4heappe/core/models/proxy_type_ext.py +91 -0
  141. py4heappe/core/models/public_key_ext.py +188 -0
  142. py4heappe/core/models/recreate_secure_shell_key_model.py +214 -0
  143. py4heappe/core/models/regenerate_secure_shell_key_model.py +188 -0
  144. py4heappe/core/models/regenerate_secure_shell_key_model_obsolete.py +188 -0
  145. py4heappe/core/models/remove_command_template_model.py +136 -0
  146. py4heappe/core/models/remove_command_template_parameter_model.py +136 -0
  147. py4heappe/core/models/remove_project_assignment_to_cluster_model.py +162 -0
  148. py4heappe/core/models/remove_project_model.py +136 -0
  149. py4heappe/core/models/remove_secure_shell_key_model.py +162 -0
  150. py4heappe/core/models/remove_secure_shell_key_model_obsolete.py +162 -0
  151. py4heappe/core/models/resource_allocation_type_ext.py +91 -0
  152. py4heappe/core/models/resource_limitation_ext.py +136 -0
  153. py4heappe/core/models/resource_usage_ext.py +163 -0
  154. py4heappe/core/models/scheduler_type.py +92 -0
  155. py4heappe/core/models/ssh_key_user_credentials_model.py +136 -0
  156. py4heappe/core/models/submit_job_model.py +136 -0
  157. py4heappe/core/models/submitted_job_info_ext.py +318 -0
  158. py4heappe/core/models/submitted_task_info_ext.py +370 -0
  159. py4heappe/core/models/synchronizable_files_ext.py +92 -0
  160. py4heappe/core/models/task_detailed_report_ext.py +318 -0
  161. py4heappe/core/models/task_file_offset_ext.py +162 -0
  162. py4heappe/core/models/task_paralization_parameter_ext.py +162 -0
  163. py4heappe/core/models/task_priority_ext.py +97 -0
  164. py4heappe/core/models/task_report_ext.py +266 -0
  165. py4heappe/core/models/task_specification_ext.py +682 -0
  166. py4heappe/core/models/task_state_ext.py +95 -0
  167. py4heappe/core/models/test_cluster_access_for_account_model.py +162 -0
  168. py4heappe/core/models/test_cluster_access_for_account_model_obsolete.py +162 -0
  169. py4heappe/core/models/unauthorized_result.py +110 -0
  170. py4heappe/core/models/usage_type.py +90 -0
  171. py4heappe/core/models/usage_type_ext.py +90 -0
  172. py4heappe/core/models/user_group_detailed_report_ext.py +240 -0
  173. py4heappe/core/models/user_group_list_report_ext.py +240 -0
  174. py4heappe/core/models/user_group_report_ext.py +240 -0
  175. py4heappe/core/models/version_information_ext.py +162 -0
  176. py4heappe/core/rest.py +311 -0
  177. py4heappe-1.0.0.dist-info/METADATA +147 -0
  178. py4heappe-1.0.0.dist-info/RECORD +183 -0
  179. py4heappe-1.0.0.dist-info/WHEEL +5 -0
  180. py4heappe-1.0.0.dist-info/entry_points.txt +2 -0
  181. py4heappe-1.0.0.dist-info/licenses/LICENSE +20 -0
  182. py4heappe-1.0.0.dist-info/top_level.txt +3 -0
  183. py4heappe_cli.py +22 -0
@@ -0,0 +1,240 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ HEAppE Web API
5
+
6
+ HEAppE middleware API v4.2.1 # noqa: E501
7
+
8
+ OpenAPI spec version: v4.2.1
9
+ Contact: support.heappe@it4i.cz
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+ """
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ class ClusterNodeTypeDetailedReportExt(object):
19
+ """NOTE: This class is auto generated by the swagger code generator program.
20
+
21
+ Do not edit the class manually.
22
+ """
23
+ """
24
+ Attributes:
25
+ swagger_types (dict): The key is attribute name
26
+ and the value is attribute type.
27
+ attribute_map (dict): The key is attribute name
28
+ and the value is json key in definition.
29
+ """
30
+ swagger_types = {
31
+ 'id': 'int',
32
+ 'total_usage': 'float',
33
+ 'name': 'str',
34
+ 'description': 'str',
35
+ 'queue_name': 'str',
36
+ 'jobs': 'list[JobDetailedReportExt]'
37
+ }
38
+
39
+ attribute_map = {
40
+ 'id': 'Id',
41
+ 'total_usage': 'TotalUsage',
42
+ 'name': 'Name',
43
+ 'description': 'Description',
44
+ 'queue_name': 'QueueName',
45
+ 'jobs': 'Jobs'
46
+ }
47
+
48
+ def __init__(self, id=None, total_usage=None, name=None, description=None, queue_name=None, jobs=None): # noqa: E501
49
+ """ClusterNodeTypeDetailedReportExt - a model defined in Swagger""" # noqa: E501
50
+ self._id = None
51
+ self._total_usage = None
52
+ self._name = None
53
+ self._description = None
54
+ self._queue_name = None
55
+ self._jobs = None
56
+ self.discriminator = None
57
+ if id is not None:
58
+ self.id = id
59
+ if total_usage is not None:
60
+ self.total_usage = total_usage
61
+ if name is not None:
62
+ self.name = name
63
+ if description is not None:
64
+ self.description = description
65
+ if queue_name is not None:
66
+ self.queue_name = queue_name
67
+ if jobs is not None:
68
+ self.jobs = jobs
69
+
70
+ @property
71
+ def id(self):
72
+ """Gets the id of this ClusterNodeTypeDetailedReportExt. # noqa: E501
73
+
74
+
75
+ :return: The id of this ClusterNodeTypeDetailedReportExt. # noqa: E501
76
+ :rtype: int
77
+ """
78
+ return self._id
79
+
80
+ @id.setter
81
+ def id(self, id):
82
+ """Sets the id of this ClusterNodeTypeDetailedReportExt.
83
+
84
+
85
+ :param id: The id of this ClusterNodeTypeDetailedReportExt. # noqa: E501
86
+ :type: int
87
+ """
88
+
89
+ self._id = id
90
+
91
+ @property
92
+ def total_usage(self):
93
+ """Gets the total_usage of this ClusterNodeTypeDetailedReportExt. # noqa: E501
94
+
95
+
96
+ :return: The total_usage of this ClusterNodeTypeDetailedReportExt. # noqa: E501
97
+ :rtype: float
98
+ """
99
+ return self._total_usage
100
+
101
+ @total_usage.setter
102
+ def total_usage(self, total_usage):
103
+ """Sets the total_usage of this ClusterNodeTypeDetailedReportExt.
104
+
105
+
106
+ :param total_usage: The total_usage of this ClusterNodeTypeDetailedReportExt. # noqa: E501
107
+ :type: float
108
+ """
109
+
110
+ self._total_usage = total_usage
111
+
112
+ @property
113
+ def name(self):
114
+ """Gets the name of this ClusterNodeTypeDetailedReportExt. # noqa: E501
115
+
116
+
117
+ :return: The name of this ClusterNodeTypeDetailedReportExt. # noqa: E501
118
+ :rtype: str
119
+ """
120
+ return self._name
121
+
122
+ @name.setter
123
+ def name(self, name):
124
+ """Sets the name of this ClusterNodeTypeDetailedReportExt.
125
+
126
+
127
+ :param name: The name of this ClusterNodeTypeDetailedReportExt. # noqa: E501
128
+ :type: str
129
+ """
130
+
131
+ self._name = name
132
+
133
+ @property
134
+ def description(self):
135
+ """Gets the description of this ClusterNodeTypeDetailedReportExt. # noqa: E501
136
+
137
+
138
+ :return: The description of this ClusterNodeTypeDetailedReportExt. # noqa: E501
139
+ :rtype: str
140
+ """
141
+ return self._description
142
+
143
+ @description.setter
144
+ def description(self, description):
145
+ """Sets the description of this ClusterNodeTypeDetailedReportExt.
146
+
147
+
148
+ :param description: The description of this ClusterNodeTypeDetailedReportExt. # noqa: E501
149
+ :type: str
150
+ """
151
+
152
+ self._description = description
153
+
154
+ @property
155
+ def queue_name(self):
156
+ """Gets the queue_name of this ClusterNodeTypeDetailedReportExt. # noqa: E501
157
+
158
+
159
+ :return: The queue_name of this ClusterNodeTypeDetailedReportExt. # noqa: E501
160
+ :rtype: str
161
+ """
162
+ return self._queue_name
163
+
164
+ @queue_name.setter
165
+ def queue_name(self, queue_name):
166
+ """Sets the queue_name of this ClusterNodeTypeDetailedReportExt.
167
+
168
+
169
+ :param queue_name: The queue_name of this ClusterNodeTypeDetailedReportExt. # noqa: E501
170
+ :type: str
171
+ """
172
+
173
+ self._queue_name = queue_name
174
+
175
+ @property
176
+ def jobs(self):
177
+ """Gets the jobs of this ClusterNodeTypeDetailedReportExt. # noqa: E501
178
+
179
+
180
+ :return: The jobs of this ClusterNodeTypeDetailedReportExt. # noqa: E501
181
+ :rtype: list[JobDetailedReportExt]
182
+ """
183
+ return self._jobs
184
+
185
+ @jobs.setter
186
+ def jobs(self, jobs):
187
+ """Sets the jobs of this ClusterNodeTypeDetailedReportExt.
188
+
189
+
190
+ :param jobs: The jobs of this ClusterNodeTypeDetailedReportExt. # noqa: E501
191
+ :type: list[JobDetailedReportExt]
192
+ """
193
+
194
+ self._jobs = jobs
195
+
196
+ def to_dict(self):
197
+ """Returns the model properties as a dict"""
198
+ result = {}
199
+
200
+ for attr, _ in six.iteritems(self.swagger_types):
201
+ value = getattr(self, attr)
202
+ if isinstance(value, list):
203
+ result[attr] = list(map(
204
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
205
+ value
206
+ ))
207
+ elif hasattr(value, "to_dict"):
208
+ result[attr] = value.to_dict()
209
+ elif isinstance(value, dict):
210
+ result[attr] = dict(map(
211
+ lambda item: (item[0], item[1].to_dict())
212
+ if hasattr(item[1], "to_dict") else item,
213
+ value.items()
214
+ ))
215
+ else:
216
+ result[attr] = value
217
+ if issubclass(ClusterNodeTypeDetailedReportExt, dict):
218
+ for key, value in self.items():
219
+ result[key] = value
220
+
221
+ return result
222
+
223
+ def to_str(self):
224
+ """Returns the string representation of the model"""
225
+ return pprint.pformat(self.to_dict())
226
+
227
+ def __repr__(self):
228
+ """For `print` and `pprint`"""
229
+ return self.to_str()
230
+
231
+ def __eq__(self, other):
232
+ """Returns true if both objects are equal"""
233
+ if not isinstance(other, ClusterNodeTypeDetailedReportExt):
234
+ return False
235
+
236
+ return self.__dict__ == other.__dict__
237
+
238
+ def __ne__(self, other):
239
+ """Returns true if both objects are not equal"""
240
+ return not self == other
@@ -0,0 +1,292 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ HEAppE Web API
5
+
6
+ HEAppE middleware API v4.2.1 # noqa: E501
7
+
8
+ OpenAPI spec version: v4.2.1
9
+ Contact: support.heappe@it4i.cz
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+ """
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ class ClusterNodeTypeExt(object):
19
+ """NOTE: This class is auto generated by the swagger code generator program.
20
+
21
+ Do not edit the class manually.
22
+ """
23
+ """
24
+ Attributes:
25
+ swagger_types (dict): The key is attribute name
26
+ and the value is attribute type.
27
+ attribute_map (dict): The key is attribute name
28
+ and the value is json key in definition.
29
+ """
30
+ swagger_types = {
31
+ 'id': 'int',
32
+ 'name': 'str',
33
+ 'description': 'str',
34
+ 'number_of_nodes': 'int',
35
+ 'cores_per_node': 'int',
36
+ 'max_walltime': 'int',
37
+ 'file_transfer_method_id': 'int',
38
+ 'projects': 'list[ProjectExt]'
39
+ }
40
+
41
+ attribute_map = {
42
+ 'id': 'Id',
43
+ 'name': 'Name',
44
+ 'description': 'Description',
45
+ 'number_of_nodes': 'NumberOfNodes',
46
+ 'cores_per_node': 'CoresPerNode',
47
+ 'max_walltime': 'MaxWalltime',
48
+ 'file_transfer_method_id': 'FileTransferMethodId',
49
+ 'projects': 'Projects'
50
+ }
51
+
52
+ def __init__(self, id=None, name=None, description=None, number_of_nodes=None, cores_per_node=None, max_walltime=None, file_transfer_method_id=None, projects=None): # noqa: E501
53
+ """ClusterNodeTypeExt - a model defined in Swagger""" # noqa: E501
54
+ self._id = None
55
+ self._name = None
56
+ self._description = None
57
+ self._number_of_nodes = None
58
+ self._cores_per_node = None
59
+ self._max_walltime = None
60
+ self._file_transfer_method_id = None
61
+ self._projects = None
62
+ self.discriminator = None
63
+ if id is not None:
64
+ self.id = id
65
+ if name is not None:
66
+ self.name = name
67
+ if description is not None:
68
+ self.description = description
69
+ if number_of_nodes is not None:
70
+ self.number_of_nodes = number_of_nodes
71
+ if cores_per_node is not None:
72
+ self.cores_per_node = cores_per_node
73
+ if max_walltime is not None:
74
+ self.max_walltime = max_walltime
75
+ if file_transfer_method_id is not None:
76
+ self.file_transfer_method_id = file_transfer_method_id
77
+ if projects is not None:
78
+ self.projects = projects
79
+
80
+ @property
81
+ def id(self):
82
+ """Gets the id of this ClusterNodeTypeExt. # noqa: E501
83
+
84
+
85
+ :return: The id of this ClusterNodeTypeExt. # noqa: E501
86
+ :rtype: int
87
+ """
88
+ return self._id
89
+
90
+ @id.setter
91
+ def id(self, id):
92
+ """Sets the id of this ClusterNodeTypeExt.
93
+
94
+
95
+ :param id: The id of this ClusterNodeTypeExt. # noqa: E501
96
+ :type: int
97
+ """
98
+
99
+ self._id = id
100
+
101
+ @property
102
+ def name(self):
103
+ """Gets the name of this ClusterNodeTypeExt. # noqa: E501
104
+
105
+
106
+ :return: The name of this ClusterNodeTypeExt. # noqa: E501
107
+ :rtype: str
108
+ """
109
+ return self._name
110
+
111
+ @name.setter
112
+ def name(self, name):
113
+ """Sets the name of this ClusterNodeTypeExt.
114
+
115
+
116
+ :param name: The name of this ClusterNodeTypeExt. # noqa: E501
117
+ :type: str
118
+ """
119
+
120
+ self._name = name
121
+
122
+ @property
123
+ def description(self):
124
+ """Gets the description of this ClusterNodeTypeExt. # noqa: E501
125
+
126
+
127
+ :return: The description of this ClusterNodeTypeExt. # noqa: E501
128
+ :rtype: str
129
+ """
130
+ return self._description
131
+
132
+ @description.setter
133
+ def description(self, description):
134
+ """Sets the description of this ClusterNodeTypeExt.
135
+
136
+
137
+ :param description: The description of this ClusterNodeTypeExt. # noqa: E501
138
+ :type: str
139
+ """
140
+
141
+ self._description = description
142
+
143
+ @property
144
+ def number_of_nodes(self):
145
+ """Gets the number_of_nodes of this ClusterNodeTypeExt. # noqa: E501
146
+
147
+
148
+ :return: The number_of_nodes of this ClusterNodeTypeExt. # noqa: E501
149
+ :rtype: int
150
+ """
151
+ return self._number_of_nodes
152
+
153
+ @number_of_nodes.setter
154
+ def number_of_nodes(self, number_of_nodes):
155
+ """Sets the number_of_nodes of this ClusterNodeTypeExt.
156
+
157
+
158
+ :param number_of_nodes: The number_of_nodes of this ClusterNodeTypeExt. # noqa: E501
159
+ :type: int
160
+ """
161
+
162
+ self._number_of_nodes = number_of_nodes
163
+
164
+ @property
165
+ def cores_per_node(self):
166
+ """Gets the cores_per_node of this ClusterNodeTypeExt. # noqa: E501
167
+
168
+
169
+ :return: The cores_per_node of this ClusterNodeTypeExt. # noqa: E501
170
+ :rtype: int
171
+ """
172
+ return self._cores_per_node
173
+
174
+ @cores_per_node.setter
175
+ def cores_per_node(self, cores_per_node):
176
+ """Sets the cores_per_node of this ClusterNodeTypeExt.
177
+
178
+
179
+ :param cores_per_node: The cores_per_node of this ClusterNodeTypeExt. # noqa: E501
180
+ :type: int
181
+ """
182
+
183
+ self._cores_per_node = cores_per_node
184
+
185
+ @property
186
+ def max_walltime(self):
187
+ """Gets the max_walltime of this ClusterNodeTypeExt. # noqa: E501
188
+
189
+
190
+ :return: The max_walltime of this ClusterNodeTypeExt. # noqa: E501
191
+ :rtype: int
192
+ """
193
+ return self._max_walltime
194
+
195
+ @max_walltime.setter
196
+ def max_walltime(self, max_walltime):
197
+ """Sets the max_walltime of this ClusterNodeTypeExt.
198
+
199
+
200
+ :param max_walltime: The max_walltime of this ClusterNodeTypeExt. # noqa: E501
201
+ :type: int
202
+ """
203
+
204
+ self._max_walltime = max_walltime
205
+
206
+ @property
207
+ def file_transfer_method_id(self):
208
+ """Gets the file_transfer_method_id of this ClusterNodeTypeExt. # noqa: E501
209
+
210
+
211
+ :return: The file_transfer_method_id of this ClusterNodeTypeExt. # noqa: E501
212
+ :rtype: int
213
+ """
214
+ return self._file_transfer_method_id
215
+
216
+ @file_transfer_method_id.setter
217
+ def file_transfer_method_id(self, file_transfer_method_id):
218
+ """Sets the file_transfer_method_id of this ClusterNodeTypeExt.
219
+
220
+
221
+ :param file_transfer_method_id: The file_transfer_method_id of this ClusterNodeTypeExt. # noqa: E501
222
+ :type: int
223
+ """
224
+
225
+ self._file_transfer_method_id = file_transfer_method_id
226
+
227
+ @property
228
+ def projects(self):
229
+ """Gets the projects of this ClusterNodeTypeExt. # noqa: E501
230
+
231
+
232
+ :return: The projects of this ClusterNodeTypeExt. # noqa: E501
233
+ :rtype: list[ProjectExt]
234
+ """
235
+ return self._projects
236
+
237
+ @projects.setter
238
+ def projects(self, projects):
239
+ """Sets the projects of this ClusterNodeTypeExt.
240
+
241
+
242
+ :param projects: The projects of this ClusterNodeTypeExt. # noqa: E501
243
+ :type: list[ProjectExt]
244
+ """
245
+
246
+ self._projects = projects
247
+
248
+ def to_dict(self):
249
+ """Returns the model properties as a dict"""
250
+ result = {}
251
+
252
+ for attr, _ in six.iteritems(self.swagger_types):
253
+ value = getattr(self, attr)
254
+ if isinstance(value, list):
255
+ result[attr] = list(map(
256
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
257
+ value
258
+ ))
259
+ elif hasattr(value, "to_dict"):
260
+ result[attr] = value.to_dict()
261
+ elif isinstance(value, dict):
262
+ result[attr] = dict(map(
263
+ lambda item: (item[0], item[1].to_dict())
264
+ if hasattr(item[1], "to_dict") else item,
265
+ value.items()
266
+ ))
267
+ else:
268
+ result[attr] = value
269
+ if issubclass(ClusterNodeTypeExt, dict):
270
+ for key, value in self.items():
271
+ result[key] = value
272
+
273
+ return result
274
+
275
+ def to_str(self):
276
+ """Returns the string representation of the model"""
277
+ return pprint.pformat(self.to_dict())
278
+
279
+ def __repr__(self):
280
+ """For `print` and `pprint`"""
281
+ return self.to_str()
282
+
283
+ def __eq__(self, other):
284
+ """Returns true if both objects are equal"""
285
+ if not isinstance(other, ClusterNodeTypeExt):
286
+ return False
287
+
288
+ return self.__dict__ == other.__dict__
289
+
290
+ def __ne__(self, other):
291
+ """Returns true if both objects are not equal"""
292
+ return not self == other