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,178 @@
1
+ # -*- encoding: UTF-8 -*-
2
+
3
+ require_relative '../client'
4
+ require_relative 'model'
5
+ require_relative '../resources/script'
6
+ require_relative '../enums/escope'
7
+
8
+ module Saklient
9
+ module Cloud
10
+ module Models
11
+
12
+ # スクリプトを検索・作成するための機能を備えたクラス.
13
+ class Model_Script < Saklient::Cloud::Models::Model
14
+
15
+ protected
16
+
17
+ # @private
18
+ # @return [String]
19
+ def _api_path
20
+ return '/note'
21
+ end
22
+
23
+ # @private
24
+ # @return [String]
25
+ def _root_key
26
+ return 'Note'
27
+ end
28
+
29
+ # @private
30
+ # @return [String]
31
+ def _root_key_m
32
+ return 'Notes'
33
+ end
34
+
35
+ # @private
36
+ # @return [String]
37
+ def _class_name
38
+ return 'Script'
39
+ end
40
+
41
+ public
42
+
43
+ # 次に取得するリストの開始オフセットを指定します.
44
+ #
45
+ # @param [Fixnum] offset オフセット
46
+ # @return [Model_Script] this
47
+ def offset(offset)
48
+ Saklient::Util::validate_type(offset, 'Fixnum')
49
+ return _offset(offset)
50
+ end
51
+
52
+ # 次に取得するリストの上限レコード数を指定します.
53
+ #
54
+ # @param [Fixnum] count 上限レコード数
55
+ # @return [Model_Script] this
56
+ def limit(count)
57
+ Saklient::Util::validate_type(count, 'Fixnum')
58
+ return _limit(count)
59
+ end
60
+
61
+ # Web APIのフィルタリング設定を直接指定します.
62
+ #
63
+ # @param [String] key キー
64
+ # @param [any] value 値
65
+ # @param [bool] multiple valueに配列を与え, OR条件で完全一致検索する場合にtrueを指定します. 通常, valueはスカラ値であいまい検索されます.
66
+ # @return [Model_Script]
67
+ def filter_by(key, value, multiple = false)
68
+ Saklient::Util::validate_type(key, 'String')
69
+ Saklient::Util::validate_type(multiple, 'bool')
70
+ return _filter_by(key, value, multiple)
71
+ end
72
+
73
+ # 次のリクエストのために設定されているステートをすべて破棄します.
74
+ #
75
+ # @return [Model_Script] this
76
+ def reset
77
+ return _reset
78
+ end
79
+
80
+ # 指定したIDを持つ唯一のリソースを取得します.
81
+ #
82
+ # @param [String] id
83
+ # @return [Saklient::Cloud::Resources::Script] リソースオブジェクト
84
+ def get_by_id(id)
85
+ Saklient::Util::validate_type(id, 'String')
86
+ return _get_by_id(id)
87
+ end
88
+
89
+ # リソースの検索リクエストを実行し, 結果をリストで取得します.
90
+ #
91
+ # @return [Array<Saklient::Cloud::Resources::Script>] リソースオブジェクトの配列
92
+ def find
93
+ return _find
94
+ end
95
+
96
+ # 指定した文字列を名前に含むリソースに絞り込みます.
97
+ #
98
+ # 大文字・小文字は区別されません.
99
+ # 半角スペースで区切られた複数の文字列は, それらをすべて含むことが条件とみなされます.
100
+ #
101
+ # @todo Implement test case
102
+ # @param [String] name
103
+ # @return [Model_Script]
104
+ def with_name_like(name)
105
+ Saklient::Util::validate_type(name, 'String')
106
+ return _with_name_like(name)
107
+ end
108
+
109
+ # 指定したタグを持つリソースに絞り込みます.
110
+ #
111
+ # 複数のタグを指定する場合は withTags() を利用してください.
112
+ #
113
+ # @todo Implement test case
114
+ # @param [String] tag
115
+ # @return [Model_Script]
116
+ def with_tag(tag)
117
+ Saklient::Util::validate_type(tag, 'String')
118
+ return _with_tag(tag)
119
+ end
120
+
121
+ # 指定したすべてのタグを持つリソースに絞り込みます.
122
+ #
123
+ # @todo Implement test case
124
+ # @param [Array<String>] tags
125
+ # @return [Model_Script]
126
+ def with_tags(tags)
127
+ Saklient::Util::validate_type(tags, 'Array')
128
+ return _with_tags(tags)
129
+ end
130
+
131
+ # 指定したDNFに合致するタグを持つリソースに絞り込みます.
132
+ #
133
+ # @todo Implement test case
134
+ # @param [Array<Array<String>>] dnf
135
+ # @return [Model_Script]
136
+ def with_tag_dnf(dnf)
137
+ Saklient::Util::validate_type(dnf, 'Array')
138
+ return _with_tag_dnf(dnf)
139
+ end
140
+
141
+ # 名前でソートします.
142
+ #
143
+ # @todo Implement test case
144
+ # @param [bool] reverse
145
+ # @return [Model_Script]
146
+ def sort_by_name(reverse = false)
147
+ Saklient::Util::validate_type(reverse, 'bool')
148
+ return _sort_by_name(reverse)
149
+ end
150
+
151
+ # @private
152
+ # @param [Saklient::Cloud::Client] client
153
+ def initialize(client)
154
+ super(client)
155
+ Saklient::Util::validate_type(client, 'Saklient::Cloud::Client')
156
+ end
157
+
158
+ # パブリックスクリプトに絞り込みます.
159
+ #
160
+ # @return [Model_Script]
161
+ def with_shared_scope
162
+ _filter_by('Scope', [Saklient::Cloud::Enums::EScope::shared])
163
+ return self
164
+ end
165
+
166
+ # プライベートスクリプトに絞り込みます.
167
+ #
168
+ # @return [Model_Script]
169
+ def with_user_scope
170
+ _filter_by('Scope', [Saklient::Cloud::Enums::EScope::user])
171
+ return self
172
+ end
173
+
174
+ end
175
+
176
+ end
177
+ end
178
+ end
@@ -0,0 +1,237 @@
1
+ # -*- encoding: UTF-8 -*-
2
+
3
+ require_relative '../client'
4
+ require_relative 'model'
5
+ require_relative '../resources/server'
6
+ require_relative '../resources/server_plan'
7
+ require_relative '../resources/iso_image'
8
+ require_relative '../enums/eserver_instance_status'
9
+
10
+ module Saklient
11
+ module Cloud
12
+ module Models
13
+
14
+ # サーバを検索・作成するための機能を備えたクラス.
15
+ class Model_Server < Saklient::Cloud::Models::Model
16
+
17
+ protected
18
+
19
+ # @private
20
+ # @return [String]
21
+ def _api_path
22
+ return '/server'
23
+ end
24
+
25
+ # @private
26
+ # @return [String]
27
+ def _root_key
28
+ return 'Server'
29
+ end
30
+
31
+ # @private
32
+ # @return [String]
33
+ def _root_key_m
34
+ return 'Servers'
35
+ end
36
+
37
+ # @private
38
+ # @return [String]
39
+ def _class_name
40
+ return 'Server'
41
+ end
42
+
43
+ public
44
+
45
+ # 次に取得するリストの開始オフセットを指定します.
46
+ #
47
+ # @param [Fixnum] offset オフセット
48
+ # @return [Model_Server] this
49
+ def offset(offset)
50
+ Saklient::Util::validate_type(offset, 'Fixnum')
51
+ return _offset(offset)
52
+ end
53
+
54
+ # 次に取得するリストの上限レコード数を指定します.
55
+ #
56
+ # @param [Fixnum] count 上限レコード数
57
+ # @return [Model_Server] this
58
+ def limit(count)
59
+ Saklient::Util::validate_type(count, 'Fixnum')
60
+ return _limit(count)
61
+ end
62
+
63
+ # Web APIのフィルタリング設定を直接指定します.
64
+ #
65
+ # @param [String] key キー
66
+ # @param [any] value 値
67
+ # @param [bool] multiple valueに配列を与え, OR条件で完全一致検索する場合にtrueを指定します. 通常, valueはスカラ値であいまい検索されます.
68
+ # @return [Model_Server]
69
+ def filter_by(key, value, multiple = false)
70
+ Saklient::Util::validate_type(key, 'String')
71
+ Saklient::Util::validate_type(multiple, 'bool')
72
+ return _filter_by(key, value, multiple)
73
+ end
74
+
75
+ # 次のリクエストのために設定されているステートをすべて破棄します.
76
+ #
77
+ # @return [Model_Server] this
78
+ def reset
79
+ return _reset
80
+ end
81
+
82
+ # 新規リソース作成用のオブジェクトを用意します.
83
+ #
84
+ # 返り値のオブジェクトにパラメータを設定し, save() を呼ぶことで実際のリソースが作成されます.
85
+ #
86
+ # @return [Saklient::Cloud::Resources::Server] リソースオブジェクト
87
+ def create
88
+ return _create
89
+ end
90
+
91
+ # 指定したIDを持つ唯一のリソースを取得します.
92
+ #
93
+ # @param [String] id
94
+ # @return [Saklient::Cloud::Resources::Server] リソースオブジェクト
95
+ def get_by_id(id)
96
+ Saklient::Util::validate_type(id, 'String')
97
+ return _get_by_id(id)
98
+ end
99
+
100
+ # リソースの検索リクエストを実行し, 結果をリストで取得します.
101
+ #
102
+ # @return [Array<Saklient::Cloud::Resources::Server>] リソースオブジェクトの配列
103
+ def find
104
+ return _find
105
+ end
106
+
107
+ # 指定した文字列を名前に含むリソースに絞り込みます.
108
+ #
109
+ # 大文字・小文字は区別されません.
110
+ # 半角スペースで区切られた複数の文字列は, それらをすべて含むことが条件とみなされます.
111
+ #
112
+ # @todo Implement test case
113
+ # @param [String] name
114
+ # @return [Model_Server]
115
+ def with_name_like(name)
116
+ Saklient::Util::validate_type(name, 'String')
117
+ return _with_name_like(name)
118
+ end
119
+
120
+ # 指定したタグを持つリソースに絞り込みます.
121
+ #
122
+ # 複数のタグを指定する場合は withTags() を利用してください.
123
+ #
124
+ # @todo Implement test case
125
+ # @param [String] tag
126
+ # @return [Model_Server]
127
+ def with_tag(tag)
128
+ Saklient::Util::validate_type(tag, 'String')
129
+ return _with_tag(tag)
130
+ end
131
+
132
+ # 指定したすべてのタグを持つリソースに絞り込みます.
133
+ #
134
+ # @todo Implement test case
135
+ # @param [Array<String>] tags
136
+ # @return [Model_Server]
137
+ def with_tags(tags)
138
+ Saklient::Util::validate_type(tags, 'Array')
139
+ return _with_tags(tags)
140
+ end
141
+
142
+ # 指定したDNFに合致するタグを持つリソースに絞り込みます.
143
+ #
144
+ # @todo Implement test case
145
+ # @param [Array<Array<String>>] dnf
146
+ # @return [Model_Server]
147
+ def with_tag_dnf(dnf)
148
+ Saklient::Util::validate_type(dnf, 'Array')
149
+ return _with_tag_dnf(dnf)
150
+ end
151
+
152
+ # 名前でソートします.
153
+ #
154
+ # @todo Implement test case
155
+ # @param [bool] reverse
156
+ # @return [Model_Server]
157
+ def sort_by_name(reverse = false)
158
+ Saklient::Util::validate_type(reverse, 'bool')
159
+ return _sort_by_name(reverse)
160
+ end
161
+
162
+ # @private
163
+ # @param [Saklient::Cloud::Client] client
164
+ def initialize(client)
165
+ super(client)
166
+ Saklient::Util::validate_type(client, 'Saklient::Cloud::Client')
167
+ end
168
+
169
+ # 指定したプランのサーバに絞り込みます.
170
+ #
171
+ # @param [Saklient::Cloud::Resources::ServerPlan] plan
172
+ # @return [Model_Server]
173
+ def with_plan(plan)
174
+ Saklient::Util::validate_type(plan, 'Saklient::Cloud::Resources::ServerPlan')
175
+ _filter_by('ServerPlan.ID', [plan._id])
176
+ return self
177
+ end
178
+
179
+ # インスタンスが指定した状態にあるサーバに絞り込みます.
180
+ #
181
+ # @param [String] status
182
+ # @return [Model_Server]
183
+ def with_status(status)
184
+ Saklient::Util::validate_type(status, 'String')
185
+ _filter_by('Instance.Status', [status])
186
+ return self
187
+ end
188
+
189
+ # インスタンスが起動中のサーバに絞り込みます.
190
+ #
191
+ # @return [Model_Server]
192
+ def with_status_up
193
+ return with_status(Saklient::Cloud::Enums::EServerInstanceStatus::up)
194
+ end
195
+
196
+ # インスタンスが停止中のサーバに絞り込みます.
197
+ #
198
+ # @return [Model_Server]
199
+ def with_status_down
200
+ return with_status(Saklient::Cloud::Enums::EServerInstanceStatus::down)
201
+ end
202
+
203
+ # 指定したISOイメージが挿入されているサーバに絞り込みます.
204
+ #
205
+ # @param [Saklient::Cloud::Resources::IsoImage] iso
206
+ # @return [Model_Server]
207
+ def with_iso_image(iso)
208
+ Saklient::Util::validate_type(iso, 'Saklient::Cloud::Resources::IsoImage')
209
+ _filter_by('Instance.CDROM.ID', [iso._id])
210
+ return self
211
+ end
212
+
213
+ # 仮想コア数でソートします.
214
+ #
215
+ # @param [bool] reverse
216
+ # @return [Model_Server]
217
+ def sort_by_cpu(reverse = false)
218
+ Saklient::Util::validate_type(reverse, 'bool')
219
+ _sort('ServerPlan.CPU', reverse)
220
+ return self
221
+ end
222
+
223
+ # メモリ容量でソートします.
224
+ #
225
+ # @param [bool] reverse
226
+ # @return [Model_Server]
227
+ def sort_by_memory(reverse = false)
228
+ Saklient::Util::validate_type(reverse, 'bool')
229
+ _sort('ServerPlan.MemoryMB', reverse)
230
+ return self
231
+ end
232
+
233
+ end
234
+
235
+ end
236
+ end
237
+ end
@@ -0,0 +1,119 @@
1
+ # -*- encoding: UTF-8 -*-
2
+
3
+ require_relative '../client'
4
+ require_relative 'model'
5
+ require_relative '../resources/server_plan'
6
+
7
+ module Saklient
8
+ module Cloud
9
+ module Models
10
+
11
+ # サーバプランを検索するための機能を備えたクラス.
12
+ class Model_ServerPlan < Saklient::Cloud::Models::Model
13
+
14
+ protected
15
+
16
+ # @private
17
+ # @return [String]
18
+ def _api_path
19
+ return '/product/server'
20
+ end
21
+
22
+ # @private
23
+ # @return [String]
24
+ def _root_key
25
+ return 'ServerPlan'
26
+ end
27
+
28
+ # @private
29
+ # @return [String]
30
+ def _root_key_m
31
+ return 'ServerPlans'
32
+ end
33
+
34
+ # @private
35
+ # @return [String]
36
+ def _class_name
37
+ return 'ServerPlan'
38
+ end
39
+
40
+ public
41
+
42
+ # 次に取得するリストの開始オフセットを指定します.
43
+ #
44
+ # @param [Fixnum] offset オフセット
45
+ # @return [Model_ServerPlan] this
46
+ def offset(offset)
47
+ Saklient::Util::validate_type(offset, 'Fixnum')
48
+ return _offset(offset)
49
+ end
50
+
51
+ # 次に取得するリストの上限レコード数を指定します.
52
+ #
53
+ # @param [Fixnum] count 上限レコード数
54
+ # @return [Model_ServerPlan] this
55
+ def limit(count)
56
+ Saklient::Util::validate_type(count, 'Fixnum')
57
+ return _limit(count)
58
+ end
59
+
60
+ # Web APIのフィルタリング設定を直接指定します.
61
+ #
62
+ # @param [String] key キー
63
+ # @param [any] value 値
64
+ # @param [bool] multiple valueに配列を与え, OR条件で完全一致検索する場合にtrueを指定します. 通常, valueはスカラ値であいまい検索されます.
65
+ # @return [Model_ServerPlan]
66
+ def filter_by(key, value, multiple = false)
67
+ Saklient::Util::validate_type(key, 'String')
68
+ Saklient::Util::validate_type(multiple, 'bool')
69
+ return _filter_by(key, value, multiple)
70
+ end
71
+
72
+ # 次のリクエストのために設定されているステートをすべて破棄します.
73
+ #
74
+ # @return [Model_ServerPlan] this
75
+ def reset
76
+ return _reset
77
+ end
78
+
79
+ # 指定したIDを持つ唯一のリソースを取得します.
80
+ #
81
+ # @param [String] id
82
+ # @return [Saklient::Cloud::Resources::ServerPlan] リソースオブジェクト
83
+ def get_by_id(id)
84
+ Saklient::Util::validate_type(id, 'String')
85
+ return _get_by_id(id)
86
+ end
87
+
88
+ # リソースの検索リクエストを実行し, 結果をリストで取得します.
89
+ #
90
+ # @return [Array<Saklient::Cloud::Resources::ServerPlan>] リソースオブジェクトの配列
91
+ def find
92
+ return _find
93
+ end
94
+
95
+ # @private
96
+ # @param [Saklient::Cloud::Client] client
97
+ def initialize(client)
98
+ super(client)
99
+ Saklient::Util::validate_type(client, 'Saklient::Cloud::Client')
100
+ end
101
+
102
+ # 指定したスペックのプランを取得します.
103
+ #
104
+ # @param [Fixnum] cores
105
+ # @param [Fixnum] memoryGib
106
+ # @return [Saklient::Cloud::Resources::ServerPlan]
107
+ def get_by_spec(cores, memoryGib)
108
+ Saklient::Util::validate_type(cores, 'Fixnum')
109
+ Saklient::Util::validate_type(memoryGib, 'Fixnum')
110
+ _filter_by('CPU', [cores])
111
+ _filter_by('MemoryMB', [memoryGib * 1024])
112
+ return _find_one
113
+ end
114
+
115
+ end
116
+
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,138 @@
1
+ # -*- encoding: UTF-8 -*-
2
+
3
+ require_relative '../client'
4
+ require_relative 'model'
5
+ require_relative '../resources/swytch'
6
+
7
+ module Saklient
8
+ module Cloud
9
+ module Models
10
+
11
+ # スイッチを検索・作成するための機能を備えたクラス.
12
+ class Model_Swytch < Saklient::Cloud::Models::Model
13
+
14
+ protected
15
+
16
+ # @private
17
+ # @return [String]
18
+ def _api_path
19
+ return '/switch'
20
+ end
21
+
22
+ # @private
23
+ # @return [String]
24
+ def _root_key
25
+ return 'Switch'
26
+ end
27
+
28
+ # @private
29
+ # @return [String]
30
+ def _root_key_m
31
+ return 'Switches'
32
+ end
33
+
34
+ # @private
35
+ # @return [String]
36
+ def _class_name
37
+ return 'Swytch'
38
+ end
39
+
40
+ public
41
+
42
+ # 次に取得するリストの開始オフセットを指定します.
43
+ #
44
+ # @param [Fixnum] offset オフセット
45
+ # @return [Model_Swytch] this
46
+ def offset(offset)
47
+ Saklient::Util::validate_type(offset, 'Fixnum')
48
+ return _offset(offset)
49
+ end
50
+
51
+ # 次に取得するリストの上限レコード数を指定します.
52
+ #
53
+ # @param [Fixnum] count 上限レコード数
54
+ # @return [Model_Swytch] this
55
+ def limit(count)
56
+ Saklient::Util::validate_type(count, 'Fixnum')
57
+ return _limit(count)
58
+ end
59
+
60
+ # Web APIのフィルタリング設定を直接指定します.
61
+ #
62
+ # @param [String] key キー
63
+ # @param [any] value 値
64
+ # @param [bool] multiple valueに配列を与え, OR条件で完全一致検索する場合にtrueを指定します. 通常, valueはスカラ値であいまい検索されます.
65
+ # @return [Model_Swytch]
66
+ def filter_by(key, value, multiple = false)
67
+ Saklient::Util::validate_type(key, 'String')
68
+ Saklient::Util::validate_type(multiple, 'bool')
69
+ return _filter_by(key, value, multiple)
70
+ end
71
+
72
+ # 次のリクエストのために設定されているステートをすべて破棄します.
73
+ #
74
+ # @return [Model_Swytch] this
75
+ def reset
76
+ return _reset
77
+ end
78
+
79
+ # 新規リソース作成用のオブジェクトを用意します.
80
+ #
81
+ # 返り値のオブジェクトにパラメータを設定し, save() を呼ぶことで実際のリソースが作成されます.
82
+ #
83
+ # @return [Saklient::Cloud::Resources::Swytch] リソースオブジェクト
84
+ def create
85
+ return _create
86
+ end
87
+
88
+ # 指定したIDを持つ唯一のリソースを取得します.
89
+ #
90
+ # @param [String] id
91
+ # @return [Saklient::Cloud::Resources::Swytch] リソースオブジェクト
92
+ def get_by_id(id)
93
+ Saklient::Util::validate_type(id, 'String')
94
+ return _get_by_id(id)
95
+ end
96
+
97
+ # リソースの検索リクエストを実行し, 結果をリストで取得します.
98
+ #
99
+ # @return [Array<Saklient::Cloud::Resources::Swytch>] リソースオブジェクトの配列
100
+ def find
101
+ return _find
102
+ end
103
+
104
+ # 指定した文字列を名前に含むリソースに絞り込みます.
105
+ #
106
+ # 大文字・小文字は区別されません.
107
+ # 半角スペースで区切られた複数の文字列は, それらをすべて含むことが条件とみなされます.
108
+ #
109
+ # @todo Implement test case
110
+ # @param [String] name
111
+ # @return [Model_Swytch]
112
+ def with_name_like(name)
113
+ Saklient::Util::validate_type(name, 'String')
114
+ return _with_name_like(name)
115
+ end
116
+
117
+ # 名前でソートします.
118
+ #
119
+ # @todo Implement test case
120
+ # @param [bool] reverse
121
+ # @return [Model_Swytch]
122
+ def sort_by_name(reverse = false)
123
+ Saklient::Util::validate_type(reverse, 'bool')
124
+ return _sort_by_name(reverse)
125
+ end
126
+
127
+ # @private
128
+ # @param [Saklient::Cloud::Client] client
129
+ def initialize(client)
130
+ super(client)
131
+ Saklient::Util::validate_type(client, 'Saklient::Cloud::Client')
132
+ end
133
+
134
+ end
135
+
136
+ end
137
+ end
138
+ end