saklient 0.0.1

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 (218) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +43 -0
  6. data/Rakefile +1 -0
  7. data/config.sh.sample +5 -0
  8. data/example.rb +83 -0
  9. data/example.sh +6 -0
  10. data/lib/saklient/cloud/api.rb +382 -0
  11. data/lib/saklient/cloud/client.rb +111 -0
  12. data/lib/saklient/cloud/enums/eappliance_class.rb +39 -0
  13. data/lib/saklient/cloud/enums/eavailability.rb +79 -0
  14. data/lib/saklient/cloud/enums/edisk_connection.rb +39 -0
  15. data/lib/saklient/cloud/enums/escope.rb +39 -0
  16. data/lib/saklient/cloud/enums/escript_class.rb +39 -0
  17. data/lib/saklient/cloud/enums/eserver_instance_status.rb +44 -0
  18. data/lib/saklient/cloud/enums/estorage_class.rb +34 -0
  19. data/lib/saklient/cloud/errors/access_api_key_disabled_exception.rb +23 -0
  20. data/lib/saklient/cloud/errors/access_sakura_exception.rb +23 -0
  21. data/lib/saklient/cloud/errors/access_staff_exception.rb +23 -0
  22. data/lib/saklient/cloud/errors/access_token_exception.rb +23 -0
  23. data/lib/saklient/cloud/errors/access_xhr_or_api_key_exception.rb +23 -0
  24. data/lib/saklient/cloud/errors/account_not_found_exception.rb +23 -0
  25. data/lib/saklient/cloud/errors/account_not_specified_exception.rb +23 -0
  26. data/lib/saklient/cloud/errors/ambiguous_identifier_exception.rb +23 -0
  27. data/lib/saklient/cloud/errors/ambiguous_zone_exception.rb +23 -0
  28. data/lib/saklient/cloud/errors/api_proxy_timeout_exception.rb +23 -0
  29. data/lib/saklient/cloud/errors/api_proxy_timeout_non_get_exception.rb +23 -0
  30. data/lib/saklient/cloud/errors/archive_is_incomplete_exception.rb +23 -0
  31. data/lib/saklient/cloud/errors/boot_failure_by_lock_exception.rb +23 -0
  32. data/lib/saklient/cloud/errors/boot_failure_in_group_exception.rb +23 -0
  33. data/lib/saklient/cloud/errors/busy_exception.rb +23 -0
  34. data/lib/saklient/cloud/errors/cant_resize_smaller_exception.rb +23 -0
  35. data/lib/saklient/cloud/errors/cdrom_device_locked_exception.rb +23 -0
  36. data/lib/saklient/cloud/errors/cdrom_disabled_exception.rb +23 -0
  37. data/lib/saklient/cloud/errors/cdrom_in_use_exception.rb +23 -0
  38. data/lib/saklient/cloud/errors/cdrom_is_incomplete_exception.rb +23 -0
  39. data/lib/saklient/cloud/errors/connect_to_same_switch_exception.rb +23 -0
  40. data/lib/saklient/cloud/errors/contract_creation_exception.rb +23 -0
  41. data/lib/saklient/cloud/errors/copy_to_itself_exception.rb +23 -0
  42. data/lib/saklient/cloud/errors/delete_disk_b4_template_exception.rb +23 -0
  43. data/lib/saklient/cloud/errors/delete_ip_v6_nets_first_exception.rb +23 -0
  44. data/lib/saklient/cloud/errors/delete_res_b4_account_exception.rb +23 -0
  45. data/lib/saklient/cloud/errors/delete_router_b4_switch_exception.rb +23 -0
  46. data/lib/saklient/cloud/errors/delete_static_route_first_exception.rb +23 -0
  47. data/lib/saklient/cloud/errors/disabled_in_sandbox_exception.rb +23 -0
  48. data/lib/saklient/cloud/errors/disconnect_b4_delete_exception.rb +23 -0
  49. data/lib/saklient/cloud/errors/disconnect_b4_update_exception.rb +23 -0
  50. data/lib/saklient/cloud/errors/disk_connection_limit_exception.rb +23 -0
  51. data/lib/saklient/cloud/errors/disk_is_copying_exception.rb +23 -0
  52. data/lib/saklient/cloud/errors/disk_is_not_available_exception.rb +23 -0
  53. data/lib/saklient/cloud/errors/disk_license_mismatch_exception.rb +23 -0
  54. data/lib/saklient/cloud/errors/disk_or_ss_in_migration_exception.rb +23 -0
  55. data/lib/saklient/cloud/errors/disk_stock_run_out_exception.rb +23 -0
  56. data/lib/saklient/cloud/errors/dns_aaaa_record_not_found_exception.rb +23 -0
  57. data/lib/saklient/cloud/errors/dns_arecord_not_found_exception.rb +23 -0
  58. data/lib/saklient/cloud/errors/dns_ptr_update_failure_exception.rb +23 -0
  59. data/lib/saklient/cloud/errors/dont_create_in_sandbox_exception.rb +23 -0
  60. data/lib/saklient/cloud/errors/duplicate_account_code_exception.rb +23 -0
  61. data/lib/saklient/cloud/errors/duplicate_entry_exception.rb +23 -0
  62. data/lib/saklient/cloud/errors/duplicate_user_code_exception.rb +23 -0
  63. data/lib/saklient/cloud/errors/file_not_uploaded_exception.rb +23 -0
  64. data/lib/saklient/cloud/errors/filter_array_comparison_exception.rb +23 -0
  65. data/lib/saklient/cloud/errors/filter_bad_operator_exception.rb +23 -0
  66. data/lib/saklient/cloud/errors/filter_null_comparison_exception.rb +23 -0
  67. data/lib/saklient/cloud/errors/filter_unknown_operator_exception.rb +23 -0
  68. data/lib/saklient/cloud/errors/ftp_cannot_close_exception.rb +23 -0
  69. data/lib/saklient/cloud/errors/ftp_is_already_close_exception.rb +23 -0
  70. data/lib/saklient/cloud/errors/ftp_is_already_open_exception.rb +23 -0
  71. data/lib/saklient/cloud/errors/ftp_must_be_closed_exception.rb +23 -0
  72. data/lib/saklient/cloud/errors/host_operation_failure_exception.rb +23 -0
  73. data/lib/saklient/cloud/errors/illegal_das_usage_exception.rb +23 -0
  74. data/lib/saklient/cloud/errors/in_migration_exception.rb +23 -0
  75. data/lib/saklient/cloud/errors/invalid_format_exception.rb +23 -0
  76. data/lib/saklient/cloud/errors/invalid_param_comb_exception.rb +23 -0
  77. data/lib/saklient/cloud/errors/invalid_range_exception.rb +23 -0
  78. data/lib/saklient/cloud/errors/invalid_uri_argument_exception.rb +23 -0
  79. data/lib/saklient/cloud/errors/ip_v6_net_already_attached_exception.rb +23 -0
  80. data/lib/saklient/cloud/errors/limit_count_in_account_exception.rb +23 -0
  81. data/lib/saklient/cloud/errors/limit_count_in_member_exception.rb +23 -0
  82. data/lib/saklient/cloud/errors/limit_count_in_network_exception.rb +23 -0
  83. data/lib/saklient/cloud/errors/limit_count_in_router_exception.rb +23 -0
  84. data/lib/saklient/cloud/errors/limit_count_in_zone_exception.rb +23 -0
  85. data/lib/saklient/cloud/errors/limit_memory_in_account_exception.rb +23 -0
  86. data/lib/saklient/cloud/errors/limit_size_in_account_exception.rb +23 -0
  87. data/lib/saklient/cloud/errors/missing_iso_image_exception.rb +23 -0
  88. data/lib/saklient/cloud/errors/missing_param_exception.rb +23 -0
  89. data/lib/saklient/cloud/errors/must_be_of_same_zone_exception.rb +23 -0
  90. data/lib/saklient/cloud/errors/no_display_response_exception.rb +23 -0
  91. data/lib/saklient/cloud/errors/not_for_router_exception.rb +23 -0
  92. data/lib/saklient/cloud/errors/not_replicating_exception.rb +23 -0
  93. data/lib/saklient/cloud/errors/not_with_hybridconn_exception.rb +23 -0
  94. data/lib/saklient/cloud/errors/old_storage_plan_exception.rb +23 -0
  95. data/lib/saklient/cloud/errors/operation_failure_exception.rb +23 -0
  96. data/lib/saklient/cloud/errors/operation_timeout_exception.rb +23 -0
  97. data/lib/saklient/cloud/errors/original_hash_mismatch_exception.rb +23 -0
  98. data/lib/saklient/cloud/errors/packet_filter_applying_exception.rb +23 -0
  99. data/lib/saklient/cloud/errors/packet_filter_version_mismatch_exception.rb +23 -0
  100. data/lib/saklient/cloud/errors/param_ip_not_found_exception.rb +23 -0
  101. data/lib/saklient/cloud/errors/param_res_not_found_exception.rb +23 -0
  102. data/lib/saklient/cloud/errors/payment_credit_card_exception.rb +23 -0
  103. data/lib/saklient/cloud/errors/payment_payment_exception.rb +23 -0
  104. data/lib/saklient/cloud/errors/payment_registration_exception.rb +23 -0
  105. data/lib/saklient/cloud/errors/payment_tel_certification_exception.rb +23 -0
  106. data/lib/saklient/cloud/errors/payment_unpayable_exception.rb +23 -0
  107. data/lib/saklient/cloud/errors/penalty_operation_exception.rb +23 -0
  108. data/lib/saklient/cloud/errors/replica_already_exists_exception.rb +23 -0
  109. data/lib/saklient/cloud/errors/replica_not_found_exception.rb +23 -0
  110. data/lib/saklient/cloud/errors/res_already_connected_exception.rb +23 -0
  111. data/lib/saklient/cloud/errors/res_already_disconnected_exception.rb +23 -0
  112. data/lib/saklient/cloud/errors/res_already_exists_exception.rb +23 -0
  113. data/lib/saklient/cloud/errors/res_used_in_zone_exception.rb +23 -0
  114. data/lib/saklient/cloud/errors/resource_path_not_found_exception.rb +23 -0
  115. data/lib/saklient/cloud/errors/run_out_of_ip_address_exception.rb +23 -0
  116. data/lib/saklient/cloud/errors/same_license_required_exception.rb +23 -0
  117. data/lib/saklient/cloud/errors/server_could_not_stop_exception.rb +23 -0
  118. data/lib/saklient/cloud/errors/server_is_cleaning_exception.rb +23 -0
  119. data/lib/saklient/cloud/errors/server_operation_failure_exception.rb +23 -0
  120. data/lib/saklient/cloud/errors/server_power_must_be_down_exception.rb +23 -0
  121. data/lib/saklient/cloud/errors/server_power_must_be_up_exception.rb +23 -0
  122. data/lib/saklient/cloud/errors/service_temporarily_unavailable_exception.rb +23 -0
  123. data/lib/saklient/cloud/errors/size_mismatch_exception.rb +23 -0
  124. data/lib/saklient/cloud/errors/snapshot_in_migration_exception.rb +23 -0
  125. data/lib/saklient/cloud/errors/still_creating_exception.rb +23 -0
  126. data/lib/saklient/cloud/errors/storage_abnormal_exception.rb +23 -0
  127. data/lib/saklient/cloud/errors/storage_operation_failure_exception.rb +23 -0
  128. data/lib/saklient/cloud/errors/switch_hybrid_connected_exception.rb +23 -0
  129. data/lib/saklient/cloud/errors/template_ftp_is_open_exception.rb +23 -0
  130. data/lib/saklient/cloud/errors/template_is_incomplete_exception.rb +23 -0
  131. data/lib/saklient/cloud/errors/too_many_request_exception.rb +23 -0
  132. data/lib/saklient/cloud/errors/unknown_exception.rb +23 -0
  133. data/lib/saklient/cloud/errors/unknown_os_type_exception.rb +23 -0
  134. data/lib/saklient/cloud/errors/unsupported_res_class_exception.rb +23 -0
  135. data/lib/saklient/cloud/errors/user_not_specified_exception.rb +23 -0
  136. data/lib/saklient/cloud/errors/vnc_proxy_request_failure_exception.rb +23 -0
  137. data/lib/saklient/cloud/models/model.rb +348 -0
  138. data/lib/saklient/cloud/models/model_appliance.rb +161 -0
  139. data/lib/saklient/cloud/models/model_archive.rb +207 -0
  140. data/lib/saklient/cloud/models/model_disk.rb +200 -0
  141. data/lib/saklient/cloud/models/model_disk_plan.rb +156 -0
  142. data/lib/saklient/cloud/models/model_icon.rb +178 -0
  143. data/lib/saklient/cloud/models/model_iface.rb +115 -0
  144. data/lib/saklient/cloud/models/model_ipv6_net.rb +106 -0
  145. data/lib/saklient/cloud/models/model_iso_image.rb +207 -0
  146. data/lib/saklient/cloud/models/model_router.rb +148 -0
  147. data/lib/saklient/cloud/models/model_router_plan.rb +106 -0
  148. data/lib/saklient/cloud/models/model_script.rb +178 -0
  149. data/lib/saklient/cloud/models/model_server.rb +237 -0
  150. data/lib/saklient/cloud/models/model_server_plan.rb +119 -0
  151. data/lib/saklient/cloud/models/model_swytch.rb +138 -0
  152. data/lib/saklient/cloud/models/query_params.rb +44 -0
  153. data/lib/saklient/cloud/product.rb +95 -0
  154. data/lib/saklient/cloud/resources/appliance.rb +551 -0
  155. data/lib/saklient/cloud/resources/archive.rb +861 -0
  156. data/lib/saklient/cloud/resources/disk.rb +802 -0
  157. data/lib/saklient/cloud/resources/disk_config.rb +353 -0
  158. data/lib/saklient/cloud/resources/disk_plan.rb +194 -0
  159. data/lib/saklient/cloud/resources/ftp_info.rb +93 -0
  160. data/lib/saklient/cloud/resources/icon.rb +268 -0
  161. data/lib/saklient/cloud/resources/iface.rb +329 -0
  162. data/lib/saklient/cloud/resources/ipv4_net.rb +275 -0
  163. data/lib/saklient/cloud/resources/ipv6_net.rb +238 -0
  164. data/lib/saklient/cloud/resources/iso_image.rb +666 -0
  165. data/lib/saklient/cloud/resources/resource.rb +287 -0
  166. data/lib/saklient/cloud/resources/router.rb +508 -0
  167. data/lib/saklient/cloud/resources/router_plan.rb +230 -0
  168. data/lib/saklient/cloud/resources/script.rb +554 -0
  169. data/lib/saklient/cloud/resources/server.rb +730 -0
  170. data/lib/saklient/cloud/resources/server_instance.rb +217 -0
  171. data/lib/saklient/cloud/resources/server_plan.rb +285 -0
  172. data/lib/saklient/cloud/resources/swytch.rb +521 -0
  173. data/lib/saklient/errors/exception_factory.rb +532 -0
  174. data/lib/saklient/errors/http_bad_gateway_exception.rb +21 -0
  175. data/lib/saklient/errors/http_bad_request_exception.rb +21 -0
  176. data/lib/saklient/errors/http_conflict_exception.rb +21 -0
  177. data/lib/saklient/errors/http_exception.rb +27 -0
  178. data/lib/saklient/errors/http_expectation_failed_exception.rb +21 -0
  179. data/lib/saklient/errors/http_failed_dependency_exception.rb +21 -0
  180. data/lib/saklient/errors/http_forbidden_exception.rb +21 -0
  181. data/lib/saklient/errors/http_gateway_timeout_exception.rb +21 -0
  182. data/lib/saklient/errors/http_gone_exception.rb +21 -0
  183. data/lib/saklient/errors/http_http_version_not_supported_exception.rb +21 -0
  184. data/lib/saklient/errors/http_insufficient_storage_exception.rb +21 -0
  185. data/lib/saklient/errors/http_internal_server_error_exception.rb +21 -0
  186. data/lib/saklient/errors/http_length_required_exception.rb +21 -0
  187. data/lib/saklient/errors/http_locked_exception.rb +21 -0
  188. data/lib/saklient/errors/http_method_not_allowed_exception.rb +21 -0
  189. data/lib/saklient/errors/http_not_acceptable_exception.rb +21 -0
  190. data/lib/saklient/errors/http_not_extended_exception.rb +21 -0
  191. data/lib/saklient/errors/http_not_found_exception.rb +21 -0
  192. data/lib/saklient/errors/http_not_implemented_exception.rb +21 -0
  193. data/lib/saklient/errors/http_payment_required_exception.rb +21 -0
  194. data/lib/saklient/errors/http_precondition_failed_exception.rb +21 -0
  195. data/lib/saklient/errors/http_proxy_authentication_required_exception.rb +21 -0
  196. data/lib/saklient/errors/http_request_entity_too_large_exception.rb +21 -0
  197. data/lib/saklient/errors/http_request_timeout_exception.rb +21 -0
  198. data/lib/saklient/errors/http_request_uri_too_long_exception.rb +21 -0
  199. data/lib/saklient/errors/http_requested_range_not_satisfiable_exception.rb +21 -0
  200. data/lib/saklient/errors/http_service_unavailable_exception.rb +21 -0
  201. data/lib/saklient/errors/http_unauthorized_exception.rb +21 -0
  202. data/lib/saklient/errors/http_unprocessable_entity_exception.rb +21 -0
  203. data/lib/saklient/errors/http_unsupported_media_type_exception.rb +21 -0
  204. data/lib/saklient/errors/http_upgrade_required_exception.rb +21 -0
  205. data/lib/saklient/errors/http_variant_also_negotiates_exception.rb +21 -0
  206. data/lib/saklient/errors/saklient_exception.rb +22 -0
  207. data/lib/saklient/util.rb +121 -0
  208. data/lib/saklient/version.rb +5 -0
  209. data/saklient.gemspec +24 -0
  210. data/spec/archive_spec.rb +141 -0
  211. data/spec/enum_spec.rb +24 -0
  212. data/spec/exception_spec.rb +25 -0
  213. data/spec/iso_image_spec.rb +172 -0
  214. data/spec/router_spec.rb +124 -0
  215. data/spec/server_spec.rb +261 -0
  216. data/spec/util_spec.rb +72 -0
  217. data/test-sshkey.txt +27 -0
  218. metadata +281 -0
@@ -0,0 +1,217 @@
1
+ # -*- encoding: UTF-8 -*-
2
+
3
+ require_relative '../../util'
4
+ require_relative '../client'
5
+ require_relative 'resource'
6
+ require_relative 'iso_image'
7
+ require_relative '../enums/eserver_instance_status'
8
+
9
+ module Saklient
10
+ module Cloud
11
+ module Resources
12
+
13
+ # サーバインスタンスの実体1つに対応し, 属性の取得や操作を行うためのクラス.
14
+ class ServerInstance < Saklient::Cloud::Resources::Resource
15
+
16
+ protected
17
+
18
+ # 起動状態 {Saklient::Cloud::Enums::EServerInstanceStatus}
19
+ #
20
+ # @return [String]
21
+ attr_accessor :m_status
22
+
23
+ # 前回の起動状態 {Saklient::Cloud::Enums::EServerInstanceStatus}
24
+ #
25
+ # @return [String]
26
+ attr_accessor :m_before_status
27
+
28
+ # 現在の起動状態に変化した日時
29
+ #
30
+ # @return [NativeDate]
31
+ attr_accessor :m_status_changed_at
32
+
33
+ # 挿入されているISOイメージ
34
+ #
35
+ # @return [IsoImage]
36
+ attr_accessor :m_iso_image
37
+
38
+ public
39
+
40
+ # @private
41
+ # @param [Saklient::Cloud::Client] client
42
+ # @param [any] obj
43
+ # @param [bool] wrapped
44
+ def initialize(client, obj, wrapped = false)
45
+ super(client)
46
+ Saklient::Util::validate_type(client, 'Saklient::Cloud::Client')
47
+ Saklient::Util::validate_type(wrapped, 'bool')
48
+ api_deserialize(obj, wrapped)
49
+ end
50
+
51
+ # サーバが起動しているときtrueを返します.
52
+ #
53
+ # @return [bool]
54
+ def is_up
55
+ return !(get_status).nil? && Saklient::Cloud::Enums::EServerInstanceStatus::compare(get_status, Saklient::Cloud::Enums::EServerInstanceStatus::up) == 0
56
+ end
57
+
58
+ # サーバが停止しているときtrueを返します.
59
+ #
60
+ # @return [bool]
61
+ def is_down
62
+ return (get_status).nil? || Saklient::Cloud::Enums::EServerInstanceStatus::compare(get_status, Saklient::Cloud::Enums::EServerInstanceStatus::down) == 0
63
+ end
64
+
65
+ protected
66
+
67
+ # @return [bool]
68
+ attr_accessor :n_status
69
+
70
+ # (This method is generated in Translator_default#buildImpl)
71
+ #
72
+ # @private
73
+ # @return [String]
74
+ def get_status
75
+ return @m_status
76
+ end
77
+
78
+ public
79
+
80
+ # 起動状態 {Saklient::Cloud::Enums::EServerInstanceStatus}
81
+ #
82
+ # @return [String]
83
+ attr_reader :status
84
+
85
+ def status
86
+ get_status
87
+ end
88
+
89
+ protected
90
+
91
+ # @return [bool]
92
+ attr_accessor :n_before_status
93
+
94
+ # (This method is generated in Translator_default#buildImpl)
95
+ #
96
+ # @private
97
+ # @return [String]
98
+ def get_before_status
99
+ return @m_before_status
100
+ end
101
+
102
+ public
103
+
104
+ # 前回の起動状態 {Saklient::Cloud::Enums::EServerInstanceStatus}
105
+ #
106
+ # @return [String]
107
+ attr_reader :before_status
108
+
109
+ def before_status
110
+ get_before_status
111
+ end
112
+
113
+ protected
114
+
115
+ # @return [bool]
116
+ attr_accessor :n_status_changed_at
117
+
118
+ # (This method is generated in Translator_default#buildImpl)
119
+ #
120
+ # @private
121
+ # @return [NativeDate]
122
+ def get_status_changed_at
123
+ return @m_status_changed_at
124
+ end
125
+
126
+ public
127
+
128
+ # 現在の起動状態に変化した日時
129
+ #
130
+ # @return [NativeDate]
131
+ attr_reader :status_changed_at
132
+
133
+ def status_changed_at
134
+ get_status_changed_at
135
+ end
136
+
137
+ protected
138
+
139
+ # @return [bool]
140
+ attr_accessor :n_iso_image
141
+
142
+ # (This method is generated in Translator_default#buildImpl)
143
+ #
144
+ # @private
145
+ # @return [IsoImage]
146
+ def get_iso_image
147
+ return @m_iso_image
148
+ end
149
+
150
+ public
151
+
152
+ # 挿入されているISOイメージ
153
+ #
154
+ # @return [IsoImage]
155
+ attr_reader :iso_image
156
+
157
+ def iso_image
158
+ get_iso_image
159
+ end
160
+
161
+ protected
162
+
163
+ # (This method is generated in Translator_default#buildImpl)
164
+ #
165
+ # @param [any] r
166
+ def api_deserialize_impl(r)
167
+ @is_new = (r).nil?
168
+ r = {} if @is_new
169
+ @is_incomplete = false
170
+ if Saklient::Util::exists_path(r, 'Status')
171
+ @m_status = (Saklient::Util::get_by_path(r, 'Status')).nil? ? nil : Saklient::Util::get_by_path(r, 'Status').to_s
172
+ else
173
+ @m_status = nil
174
+ @is_incomplete = true
175
+ end
176
+ @n_status = false
177
+ if Saklient::Util::exists_path(r, 'BeforeStatus')
178
+ @m_before_status = (Saklient::Util::get_by_path(r, 'BeforeStatus')).nil? ? nil : Saklient::Util::get_by_path(r, 'BeforeStatus').to_s
179
+ else
180
+ @m_before_status = nil
181
+ @is_incomplete = true
182
+ end
183
+ @n_before_status = false
184
+ if Saklient::Util::exists_path(r, 'StatusChangedAt')
185
+ @m_status_changed_at = (Saklient::Util::get_by_path(r, 'StatusChangedAt')).nil? ? nil : Saklient::Util::get_by_path(r, 'StatusChangedAt').to_s
186
+ else
187
+ @m_status_changed_at = nil
188
+ @is_incomplete = true
189
+ end
190
+ @n_status_changed_at = false
191
+ if Saklient::Util::exists_path(r, 'CDROM')
192
+ @m_iso_image = (Saklient::Util::get_by_path(r, 'CDROM')).nil? ? nil : Saklient::Cloud::Resources::IsoImage.new(@_client, Saklient::Util::get_by_path(r, 'CDROM'))
193
+ else
194
+ @m_iso_image = nil
195
+ @is_incomplete = true
196
+ end
197
+ @n_iso_image = false
198
+ end
199
+
200
+ # @private
201
+ # @param [bool] withClean
202
+ # @return [any]
203
+ def api_serialize_impl(withClean = false)
204
+ Saklient::Util::validate_type(withClean, 'bool')
205
+ ret = {}
206
+ Saklient::Util::set_by_path(ret, 'Status', @m_status) if withClean || @n_status
207
+ Saklient::Util::set_by_path(ret, 'BeforeStatus', @m_before_status) if withClean || @n_before_status
208
+ Saklient::Util::set_by_path(ret, 'StatusChangedAt', (@m_status_changed_at).nil? ? nil : Saklient::Util::date2str(@m_status_changed_at)) if withClean || @n_status_changed_at
209
+ Saklient::Util::set_by_path(ret, 'CDROM', withClean ? ((@m_iso_image).nil? ? nil : @m_iso_image.api_serialize(withClean)) : ((@m_iso_image).nil? ? { ID: '0' } : @m_iso_image.api_serialize_id)) if withClean || @n_iso_image
210
+ return ret
211
+ end
212
+
213
+ end
214
+
215
+ end
216
+ end
217
+ end
@@ -0,0 +1,285 @@
1
+ # -*- encoding: UTF-8 -*-
2
+
3
+ require_relative '../client'
4
+ require_relative 'resource'
5
+
6
+ module Saklient
7
+ module Cloud
8
+ module Resources
9
+
10
+ # サーバプラン情報の1レコードに対応するクラス.
11
+ class ServerPlan < Saklient::Cloud::Resources::Resource
12
+
13
+ protected
14
+
15
+ # ID
16
+ #
17
+ # @return [String]
18
+ attr_accessor :m_id
19
+
20
+ # 名前
21
+ #
22
+ # @return [String]
23
+ attr_accessor :m_name
24
+
25
+ # 仮想コア数
26
+ #
27
+ # @return [Fixnum]
28
+ attr_accessor :m_cpu
29
+
30
+ # メモリ容量[MiB]
31
+ #
32
+ # @return [Fixnum]
33
+ attr_accessor :m_memory_mib
34
+
35
+ # サービスクラス
36
+ #
37
+ # @return [String]
38
+ attr_accessor :m_service_class
39
+
40
+ # @private
41
+ # @return [String]
42
+ def _api_path
43
+ return '/product/server'
44
+ end
45
+
46
+ # @private
47
+ # @return [String]
48
+ def _root_key
49
+ return 'ServerPlan'
50
+ end
51
+
52
+ # @private
53
+ # @return [String]
54
+ def _root_key_m
55
+ return 'ServerPlans'
56
+ end
57
+
58
+ public
59
+
60
+ # @private
61
+ # @return [String]
62
+ def _class_name
63
+ return 'ServerPlan'
64
+ end
65
+
66
+ # @private
67
+ # @return [String]
68
+ def _id
69
+ return get_id
70
+ end
71
+
72
+ # @private
73
+ # @param [Saklient::Cloud::Client] client
74
+ # @param [any] obj
75
+ # @param [bool] wrapped
76
+ def initialize(client, obj, wrapped = false)
77
+ super(client)
78
+ Saklient::Util::validate_type(client, 'Saklient::Cloud::Client')
79
+ Saklient::Util::validate_type(wrapped, 'bool')
80
+ api_deserialize(obj, wrapped)
81
+ end
82
+
83
+ protected
84
+
85
+ # @private
86
+ # @return [Fixnum]
87
+ def get_memory_gib
88
+ memoryMib = get_memory_mib
89
+ return (memoryMib).nil? ? nil : memoryMib >> 10
90
+ end
91
+
92
+ public
93
+
94
+ # @return [Fixnum]
95
+ attr_reader :memory_gib
96
+
97
+ def memory_gib
98
+ get_memory_gib
99
+ end
100
+
101
+ protected
102
+
103
+ # @return [bool]
104
+ attr_accessor :n_id
105
+
106
+ # (This method is generated in Translator_default#buildImpl)
107
+ #
108
+ # @private
109
+ # @return [String]
110
+ def get_id
111
+ return @m_id
112
+ end
113
+
114
+ public
115
+
116
+ # ID
117
+ #
118
+ # @return [String]
119
+ attr_reader :id
120
+
121
+ def id
122
+ get_id
123
+ end
124
+
125
+ protected
126
+
127
+ # @return [bool]
128
+ attr_accessor :n_name
129
+
130
+ # (This method is generated in Translator_default#buildImpl)
131
+ #
132
+ # @private
133
+ # @return [String]
134
+ def get_name
135
+ return @m_name
136
+ end
137
+
138
+ public
139
+
140
+ # 名前
141
+ #
142
+ # @return [String]
143
+ attr_reader :name
144
+
145
+ def name
146
+ get_name
147
+ end
148
+
149
+ protected
150
+
151
+ # @return [bool]
152
+ attr_accessor :n_cpu
153
+
154
+ # (This method is generated in Translator_default#buildImpl)
155
+ #
156
+ # @private
157
+ # @return [Fixnum]
158
+ def get_cpu
159
+ return @m_cpu
160
+ end
161
+
162
+ public
163
+
164
+ # 仮想コア数
165
+ #
166
+ # @return [Fixnum]
167
+ attr_reader :cpu
168
+
169
+ def cpu
170
+ get_cpu
171
+ end
172
+
173
+ protected
174
+
175
+ # @return [bool]
176
+ attr_accessor :n_memory_mib
177
+
178
+ # (This method is generated in Translator_default#buildImpl)
179
+ #
180
+ # @private
181
+ # @return [Fixnum]
182
+ def get_memory_mib
183
+ return @m_memory_mib
184
+ end
185
+
186
+ public
187
+
188
+ # メモリ容量[MiB]
189
+ #
190
+ # @return [Fixnum]
191
+ attr_reader :memory_mib
192
+
193
+ def memory_mib
194
+ get_memory_mib
195
+ end
196
+
197
+ protected
198
+
199
+ # @return [bool]
200
+ attr_accessor :n_service_class
201
+
202
+ # (This method is generated in Translator_default#buildImpl)
203
+ #
204
+ # @private
205
+ # @return [String]
206
+ def get_service_class
207
+ return @m_service_class
208
+ end
209
+
210
+ public
211
+
212
+ # サービスクラス
213
+ #
214
+ # @return [String]
215
+ attr_reader :service_class
216
+
217
+ def service_class
218
+ get_service_class
219
+ end
220
+
221
+ protected
222
+
223
+ # (This method is generated in Translator_default#buildImpl)
224
+ #
225
+ # @param [any] r
226
+ def api_deserialize_impl(r)
227
+ @is_new = (r).nil?
228
+ r = {} if @is_new
229
+ @is_incomplete = false
230
+ if Saklient::Util::exists_path(r, 'ID')
231
+ @m_id = (Saklient::Util::get_by_path(r, 'ID')).nil? ? nil : Saklient::Util::get_by_path(r, 'ID').to_s
232
+ else
233
+ @m_id = nil
234
+ @is_incomplete = true
235
+ end
236
+ @n_id = false
237
+ if Saklient::Util::exists_path(r, 'Name')
238
+ @m_name = (Saklient::Util::get_by_path(r, 'Name')).nil? ? nil : Saklient::Util::get_by_path(r, 'Name').to_s
239
+ else
240
+ @m_name = nil
241
+ @is_incomplete = true
242
+ end
243
+ @n_name = false
244
+ if Saklient::Util::exists_path(r, 'CPU')
245
+ @m_cpu = (Saklient::Util::get_by_path(r, 'CPU')).nil? ? nil : (Saklient::Util::get_by_path(r, 'CPU').to_s).to_i(10)
246
+ else
247
+ @m_cpu = nil
248
+ @is_incomplete = true
249
+ end
250
+ @n_cpu = false
251
+ if Saklient::Util::exists_path(r, 'MemoryMB')
252
+ @m_memory_mib = (Saklient::Util::get_by_path(r, 'MemoryMB')).nil? ? nil : (Saklient::Util::get_by_path(r, 'MemoryMB').to_s).to_i(10)
253
+ else
254
+ @m_memory_mib = nil
255
+ @is_incomplete = true
256
+ end
257
+ @n_memory_mib = false
258
+ if Saklient::Util::exists_path(r, 'ServiceClass')
259
+ @m_service_class = (Saklient::Util::get_by_path(r, 'ServiceClass')).nil? ? nil : Saklient::Util::get_by_path(r, 'ServiceClass').to_s
260
+ else
261
+ @m_service_class = nil
262
+ @is_incomplete = true
263
+ end
264
+ @n_service_class = false
265
+ end
266
+
267
+ # @private
268
+ # @param [bool] withClean
269
+ # @return [any]
270
+ def api_serialize_impl(withClean = false)
271
+ Saklient::Util::validate_type(withClean, 'bool')
272
+ ret = {}
273
+ Saklient::Util::set_by_path(ret, 'ID', @m_id) if withClean || @n_id
274
+ Saklient::Util::set_by_path(ret, 'Name', @m_name) if withClean || @n_name
275
+ Saklient::Util::set_by_path(ret, 'CPU', @m_cpu) if withClean || @n_cpu
276
+ Saklient::Util::set_by_path(ret, 'MemoryMB', @m_memory_mib) if withClean || @n_memory_mib
277
+ Saklient::Util::set_by_path(ret, 'ServiceClass', @m_service_class) if withClean || @n_service_class
278
+ return ret
279
+ end
280
+
281
+ end
282
+
283
+ end
284
+ end
285
+ end