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,521 @@
1
+ # -*- encoding: UTF-8 -*-
2
+
3
+ require_relative '../../errors/saklient_exception'
4
+ require_relative '../client'
5
+ require_relative 'resource'
6
+ require_relative 'icon'
7
+ require_relative 'router'
8
+ require_relative 'ipv4_net'
9
+ require_relative 'ipv6_net'
10
+
11
+ module Saklient
12
+ module Cloud
13
+ module Resources
14
+
15
+ # スイッチの実体1つに対応し, 属性の取得や操作を行うためのクラス.
16
+ class Swytch < Saklient::Cloud::Resources::Resource
17
+
18
+ protected
19
+
20
+ # ID
21
+ #
22
+ # @return [String]
23
+ attr_accessor :m_id
24
+
25
+ # 名前
26
+ #
27
+ # @return [String]
28
+ attr_accessor :m_name
29
+
30
+ # 説明
31
+ #
32
+ # @return [String]
33
+ attr_accessor :m_description
34
+
35
+ # ユーザ設定IPv4ネットワークのゲートウェイ
36
+ #
37
+ # @return [String]
38
+ attr_accessor :m_user_default_route
39
+
40
+ # ユーザ設定IPv4ネットワークのマスク長
41
+ #
42
+ # @return [Fixnum]
43
+ attr_accessor :m_user_mask_len
44
+
45
+ # 接続されているルータ
46
+ #
47
+ # @return [Router]
48
+ attr_accessor :m_router
49
+
50
+ # IPv4ネットワーク(ルータによる自動割当)
51
+ #
52
+ # @return [Array<Ipv4Net>]
53
+ attr_accessor :m_ipv4_nets
54
+
55
+ # IPv6ネットワーク(ルータによる自動割当)
56
+ #
57
+ # @return [Array<Ipv6Net>]
58
+ attr_accessor :m_ipv6_nets
59
+
60
+ # @private
61
+ # @return [String]
62
+ def _api_path
63
+ return '/switch'
64
+ end
65
+
66
+ # @private
67
+ # @return [String]
68
+ def _root_key
69
+ return 'Switch'
70
+ end
71
+
72
+ # @private
73
+ # @return [String]
74
+ def _root_key_m
75
+ return 'Switches'
76
+ end
77
+
78
+ public
79
+
80
+ # @private
81
+ # @return [String]
82
+ def _class_name
83
+ return 'Swytch'
84
+ end
85
+
86
+ # @private
87
+ # @return [String]
88
+ def _id
89
+ return get_id
90
+ end
91
+
92
+ # このローカルオブジェクトに現在設定されているリソース情報をAPIに送信し, 新規作成または上書き保存します.
93
+ #
94
+ # @return [Swytch] this
95
+ def save
96
+ return _save
97
+ end
98
+
99
+ # 最新のリソース情報を再取得します.
100
+ #
101
+ # @return [Swytch] this
102
+ def reload
103
+ return _reload
104
+ end
105
+
106
+ # @private
107
+ # @param [Saklient::Cloud::Client] client
108
+ # @param [any] obj
109
+ # @param [bool] wrapped
110
+ def initialize(client, obj, wrapped = false)
111
+ super(client)
112
+ Saklient::Util::validate_type(client, 'Saklient::Cloud::Client')
113
+ Saklient::Util::validate_type(wrapped, 'bool')
114
+ api_deserialize(obj, wrapped)
115
+ end
116
+
117
+ # このルータ+スイッチでIPv6アドレスを有効にします.
118
+ #
119
+ # @return [Ipv6Net] 有効化されたIPv6ネットワーク
120
+ def add_ipv6_net
121
+ ret = get_router.add_ipv6_net
122
+ reload
123
+ return ret
124
+ end
125
+
126
+ # このルータ+スイッチでIPv6アドレスを無効にします.
127
+ #
128
+ # @return [Swytch] this
129
+ def remove_ipv6_net
130
+ nets = get_ipv6_nets
131
+ get_router.remove_ipv6_net(nets[0])
132
+ reload
133
+ return self
134
+ end
135
+
136
+ # このルータ+スイッチにスタティックルートを追加します.
137
+ #
138
+ # @param [Fixnum] maskLen
139
+ # @param [String] nextHop
140
+ # @return [Ipv4Net] 追加されたIPv4ネットワーク
141
+ def add_static_route(maskLen, nextHop)
142
+ Saklient::Util::validate_type(maskLen, 'Fixnum')
143
+ Saklient::Util::validate_type(nextHop, 'String')
144
+ ret = get_router.add_static_route(maskLen, nextHop)
145
+ reload
146
+ return ret
147
+ end
148
+
149
+ # このルータ+スイッチからスタティックルートを削除します.
150
+ #
151
+ # @param [Ipv4Net] ipv4Net
152
+ # @return [Swytch] this
153
+ def remove_static_route(ipv4Net)
154
+ Saklient::Util::validate_type(ipv4Net, 'Saklient::Cloud::Resources::Ipv4Net')
155
+ get_router.remove_static_route(ipv4Net)
156
+ reload
157
+ return self
158
+ end
159
+
160
+ # このルータ+スイッチの帯域プランを変更します.
161
+ #
162
+ # @param [Fixnum] bandWidthMbps
163
+ # @return [Swytch] this
164
+ def change_plan(bandWidthMbps)
165
+ Saklient::Util::validate_type(bandWidthMbps, 'Fixnum')
166
+ get_router.change_plan(bandWidthMbps)
167
+ reload
168
+ return self
169
+ end
170
+
171
+ protected
172
+
173
+ # @return [bool]
174
+ attr_accessor :n_id
175
+
176
+ # (This method is generated in Translator_default#buildImpl)
177
+ #
178
+ # @private
179
+ # @return [String]
180
+ def get_id
181
+ return @m_id
182
+ end
183
+
184
+ public
185
+
186
+ # ID
187
+ #
188
+ # @return [String]
189
+ attr_reader :id
190
+
191
+ def id
192
+ get_id
193
+ end
194
+
195
+ protected
196
+
197
+ # @return [bool]
198
+ attr_accessor :n_name
199
+
200
+ # (This method is generated in Translator_default#buildImpl)
201
+ #
202
+ # @private
203
+ # @return [String]
204
+ def get_name
205
+ return @m_name
206
+ end
207
+
208
+ # (This method is generated in Translator_default#buildImpl)
209
+ #
210
+ # @private
211
+ # @param [String] v
212
+ # @return [String]
213
+ def set_name(v)
214
+ Saklient::Util::validate_type(v, 'String')
215
+ @m_name = v
216
+ @n_name = true
217
+ return @m_name
218
+ end
219
+
220
+ public
221
+
222
+ # 名前
223
+ #
224
+ # @return [String]
225
+ attr_accessor :name
226
+
227
+ def name
228
+ get_name
229
+ end
230
+
231
+ def name=(v)
232
+ set_name(v)
233
+ end
234
+
235
+ protected
236
+
237
+ # @return [bool]
238
+ attr_accessor :n_description
239
+
240
+ # (This method is generated in Translator_default#buildImpl)
241
+ #
242
+ # @private
243
+ # @return [String]
244
+ def get_description
245
+ return @m_description
246
+ end
247
+
248
+ # (This method is generated in Translator_default#buildImpl)
249
+ #
250
+ # @private
251
+ # @param [String] v
252
+ # @return [String]
253
+ def set_description(v)
254
+ Saklient::Util::validate_type(v, 'String')
255
+ @m_description = v
256
+ @n_description = true
257
+ return @m_description
258
+ end
259
+
260
+ public
261
+
262
+ # 説明
263
+ #
264
+ # @return [String]
265
+ attr_accessor :description
266
+
267
+ def description
268
+ get_description
269
+ end
270
+
271
+ def description=(v)
272
+ set_description(v)
273
+ end
274
+
275
+ protected
276
+
277
+ # @return [bool]
278
+ attr_accessor :n_user_default_route
279
+
280
+ # (This method is generated in Translator_default#buildImpl)
281
+ #
282
+ # @private
283
+ # @return [String]
284
+ def get_user_default_route
285
+ return @m_user_default_route
286
+ end
287
+
288
+ public
289
+
290
+ # ユーザ設定IPv4ネットワークのゲートウェイ
291
+ #
292
+ # @return [String]
293
+ attr_reader :user_default_route
294
+
295
+ def user_default_route
296
+ get_user_default_route
297
+ end
298
+
299
+ protected
300
+
301
+ # @return [bool]
302
+ attr_accessor :n_user_mask_len
303
+
304
+ # (This method is generated in Translator_default#buildImpl)
305
+ #
306
+ # @private
307
+ # @return [Fixnum]
308
+ def get_user_mask_len
309
+ return @m_user_mask_len
310
+ end
311
+
312
+ public
313
+
314
+ # ユーザ設定IPv4ネットワークのマスク長
315
+ #
316
+ # @return [Fixnum]
317
+ attr_reader :user_mask_len
318
+
319
+ def user_mask_len
320
+ get_user_mask_len
321
+ end
322
+
323
+ protected
324
+
325
+ # @return [bool]
326
+ attr_accessor :n_router
327
+
328
+ # (This method is generated in Translator_default#buildImpl)
329
+ #
330
+ # @private
331
+ # @return [Router]
332
+ def get_router
333
+ return @m_router
334
+ end
335
+
336
+ public
337
+
338
+ # 接続されているルータ
339
+ #
340
+ # @return [Router]
341
+ attr_reader :router
342
+
343
+ def router
344
+ get_router
345
+ end
346
+
347
+ protected
348
+
349
+ # @return [bool]
350
+ attr_accessor :n_ipv4_nets
351
+
352
+ # (This method is generated in Translator_default#buildImpl)
353
+ #
354
+ # @private
355
+ # @return [Array<Ipv4Net>]
356
+ def get_ipv4_nets
357
+ return @m_ipv4_nets
358
+ end
359
+
360
+ public
361
+
362
+ # IPv4ネットワーク(ルータによる自動割当)
363
+ #
364
+ # @return [Array<Ipv4Net>]
365
+ attr_reader :ipv4_nets
366
+
367
+ def ipv4_nets
368
+ get_ipv4_nets
369
+ end
370
+
371
+ protected
372
+
373
+ # @return [bool]
374
+ attr_accessor :n_ipv6_nets
375
+
376
+ # (This method is generated in Translator_default#buildImpl)
377
+ #
378
+ # @private
379
+ # @return [Array<Ipv6Net>]
380
+ def get_ipv6_nets
381
+ return @m_ipv6_nets
382
+ end
383
+
384
+ public
385
+
386
+ # IPv6ネットワーク(ルータによる自動割当)
387
+ #
388
+ # @return [Array<Ipv6Net>]
389
+ attr_reader :ipv6_nets
390
+
391
+ def ipv6_nets
392
+ get_ipv6_nets
393
+ end
394
+
395
+ protected
396
+
397
+ # (This method is generated in Translator_default#buildImpl)
398
+ #
399
+ # @param [any] r
400
+ def api_deserialize_impl(r)
401
+ @is_new = (r).nil?
402
+ r = {} if @is_new
403
+ @is_incomplete = false
404
+ if Saklient::Util::exists_path(r, 'ID')
405
+ @m_id = (Saklient::Util::get_by_path(r, 'ID')).nil? ? nil : Saklient::Util::get_by_path(r, 'ID').to_s
406
+ else
407
+ @m_id = nil
408
+ @is_incomplete = true
409
+ end
410
+ @n_id = false
411
+ if Saklient::Util::exists_path(r, 'Name')
412
+ @m_name = (Saklient::Util::get_by_path(r, 'Name')).nil? ? nil : Saklient::Util::get_by_path(r, 'Name').to_s
413
+ else
414
+ @m_name = nil
415
+ @is_incomplete = true
416
+ end
417
+ @n_name = false
418
+ if Saklient::Util::exists_path(r, 'Description')
419
+ @m_description = (Saklient::Util::get_by_path(r, 'Description')).nil? ? nil : Saklient::Util::get_by_path(r, 'Description').to_s
420
+ else
421
+ @m_description = nil
422
+ @is_incomplete = true
423
+ end
424
+ @n_description = false
425
+ if Saklient::Util::exists_path(r, 'UserSubnet.DefaultRoute')
426
+ @m_user_default_route = (Saklient::Util::get_by_path(r, 'UserSubnet.DefaultRoute')).nil? ? nil : Saklient::Util::get_by_path(r, 'UserSubnet.DefaultRoute').to_s
427
+ else
428
+ @m_user_default_route = nil
429
+ @is_incomplete = true
430
+ end
431
+ @n_user_default_route = false
432
+ if Saklient::Util::exists_path(r, 'UserSubnet.NetworkMaskLen')
433
+ @m_user_mask_len = (Saklient::Util::get_by_path(r, 'UserSubnet.NetworkMaskLen')).nil? ? nil : (Saklient::Util::get_by_path(r, 'UserSubnet.NetworkMaskLen').to_s).to_i(10)
434
+ else
435
+ @m_user_mask_len = nil
436
+ @is_incomplete = true
437
+ end
438
+ @n_user_mask_len = false
439
+ if Saklient::Util::exists_path(r, 'Internet')
440
+ @m_router = (Saklient::Util::get_by_path(r, 'Internet')).nil? ? nil : Saklient::Cloud::Resources::Router.new(@_client, Saklient::Util::get_by_path(r, 'Internet'))
441
+ else
442
+ @m_router = nil
443
+ @is_incomplete = true
444
+ end
445
+ @n_router = false
446
+ if Saklient::Util::exists_path(r, 'Subnets')
447
+ if (Saklient::Util::get_by_path(r, 'Subnets')).nil?
448
+ @m_ipv4_nets = []
449
+ else
450
+ @m_ipv4_nets = []
451
+ for t in Saklient::Util::get_by_path(r, 'Subnets')
452
+ v1 = nil
453
+ v1 = (t).nil? ? nil : Saklient::Cloud::Resources::Ipv4Net.new(@_client, t)
454
+ @m_ipv4_nets << v1
455
+ end
456
+ end
457
+ else
458
+ @m_ipv4_nets = nil
459
+ @is_incomplete = true
460
+ end
461
+ @n_ipv4_nets = false
462
+ if Saklient::Util::exists_path(r, 'IPv6Nets')
463
+ if (Saklient::Util::get_by_path(r, 'IPv6Nets')).nil?
464
+ @m_ipv6_nets = []
465
+ else
466
+ @m_ipv6_nets = []
467
+ for t in Saklient::Util::get_by_path(r, 'IPv6Nets')
468
+ v2 = nil
469
+ v2 = (t).nil? ? nil : Saklient::Cloud::Resources::Ipv6Net.new(@_client, t)
470
+ @m_ipv6_nets << v2
471
+ end
472
+ end
473
+ else
474
+ @m_ipv6_nets = nil
475
+ @is_incomplete = true
476
+ end
477
+ @n_ipv6_nets = false
478
+ end
479
+
480
+ # @private
481
+ # @param [bool] withClean
482
+ # @return [any]
483
+ def api_serialize_impl(withClean = false)
484
+ Saklient::Util::validate_type(withClean, 'bool')
485
+ missing = []
486
+ ret = {}
487
+ Saklient::Util::set_by_path(ret, 'ID', @m_id) if withClean || @n_id
488
+ if withClean || @n_name
489
+ Saklient::Util::set_by_path(ret, 'Name', @m_name)
490
+ else
491
+ missing << 'name' if @is_new
492
+ end
493
+ Saklient::Util::set_by_path(ret, 'Description', @m_description) if withClean || @n_description
494
+ Saklient::Util::set_by_path(ret, 'UserSubnet.DefaultRoute', @m_user_default_route) if withClean || @n_user_default_route
495
+ Saklient::Util::set_by_path(ret, 'UserSubnet.NetworkMaskLen', @m_user_mask_len) if withClean || @n_user_mask_len
496
+ Saklient::Util::set_by_path(ret, 'Internet', withClean ? ((@m_router).nil? ? nil : @m_router.api_serialize(withClean)) : ((@m_router).nil? ? { ID: '0' } : @m_router.api_serialize_id)) if withClean || @n_router
497
+ if withClean || @n_ipv4_nets
498
+ Saklient::Util::set_by_path(ret, 'Subnets', [])
499
+ for r1 in @m_ipv4_nets
500
+ v = nil
501
+ v = withClean ? ((r1).nil? ? nil : r1.api_serialize(withClean)) : ((r1).nil? ? { ID: '0' } : r1.api_serialize_id)
502
+ ret[:Subnets] << v
503
+ end
504
+ end
505
+ if withClean || @n_ipv6_nets
506
+ Saklient::Util::set_by_path(ret, 'IPv6Nets', [])
507
+ for r2 in @m_ipv6_nets
508
+ v = nil
509
+ v = withClean ? ((r2).nil? ? nil : r2.api_serialize(withClean)) : ((r2).nil? ? { ID: '0' } : r2.api_serialize_id)
510
+ ret[:IPv6Nets] << v
511
+ end
512
+ end
513
+ raise Saklient::Errors::SaklientException.new('required_field', 'Required fields must be set before the Swytch creation: ' + missing.join(', ')) if missing.length > 0
514
+ return ret
515
+ end
516
+
517
+ end
518
+
519
+ end
520
+ end
521
+ end