qingcloud-sdk 0.4.1 → 2.0.0.pre.alpha.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.
- checksums.yaml +4 -4
- data/LICENSE +201 -21
- data/README.md +141 -61
- data/bin/console +3 -3
- data/lib/qingcloud/sdk.rb +16 -14
- data/lib/qingcloud/sdk/general/config.rb +70 -0
- data/lib/qingcloud/sdk/general/contract.rb +28 -17
- data/lib/qingcloud/sdk/general/default/config.yaml +13 -0
- data/lib/qingcloud/sdk/general/error.rb +41 -32
- data/lib/qingcloud/sdk/general/logger.rb +54 -0
- data/lib/qingcloud/sdk/request/preprocessor.rb +81 -0
- data/lib/qingcloud/sdk/request/request.rb +80 -0
- data/lib/qingcloud/sdk/request/signer.rb +53 -0
- data/lib/qingcloud/sdk/service/cache.rb +1005 -0
- data/lib/qingcloud/sdk/service/dns_alias.rb +150 -0
- data/lib/qingcloud/sdk/service/eip.rb +389 -0
- data/lib/qingcloud/sdk/service/image.rb +304 -0
- data/lib/qingcloud/sdk/service/instance.rb +585 -0
- data/lib/qingcloud/sdk/service/job.rb +71 -0
- data/lib/qingcloud/sdk/service/key_pair.rb +257 -0
- data/lib/qingcloud/sdk/service/load_balancer.rb +1119 -0
- data/lib/qingcloud/sdk/service/mongo.rb +566 -0
- data/lib/qingcloud/sdk/service/qingcloud.rb +185 -0
- data/lib/qingcloud/sdk/service/rdb.rb +751 -0
- data/lib/qingcloud/sdk/service/router.rb +778 -0
- data/lib/qingcloud/sdk/service/security_group.rb +645 -0
- data/lib/qingcloud/sdk/service/shared_storage.rb +666 -0
- data/lib/qingcloud/sdk/service/snapshot.rb +283 -0
- data/lib/qingcloud/sdk/service/tag.rb +227 -0
- data/lib/qingcloud/sdk/service/user_data.rb +61 -0
- data/lib/qingcloud/sdk/service/volume.rb +296 -0
- data/lib/qingcloud/sdk/service/vxnet.rb +295 -0
- data/lib/qingcloud/sdk/version.rb +19 -5
- metadata +98 -29
- data/.gitignore +0 -13
- data/.rspec +0 -2
- data/.travis.yml +0 -3
- data/Rakefile +0 -6
- data/lib/qingcloud/sdk/iaas/connector.rb +0 -99
- data/lib/qingcloud/sdk/iaas/foundation.rb +0 -73
- data/lib/qingcloud/sdk/iaas/service.rb +0 -1274
- data/lib/qingcloud/sdk/template/config.json +0 -4
- data/lib/qingcloud/sdk/utility/file_manager.rb +0 -43
- data/lib/qingcloud/sdk/utility/json_parser.rb +0 -41
- data/lib/qingcloud/sdk/utility/logger.rb +0 -19
- data/qingcloud-sdk.gemspec +0 -31
@@ -0,0 +1,185 @@
|
|
1
|
+
# +-------------------------------------------------------------------------
|
2
|
+
# | Copyright (C) 2016 Yunify, Inc.
|
3
|
+
# +-------------------------------------------------------------------------
|
4
|
+
# | Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# | you may not use this work except in compliance with the License.
|
6
|
+
# | You may obtain a copy of the License in the LICENSE file, or at:
|
7
|
+
# |
|
8
|
+
# | http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
# |
|
10
|
+
# | Unless required by applicable law or agreed to in writing, software
|
11
|
+
# | distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# | See the License for the specific language governing permissions and
|
14
|
+
# | limitations under the License.
|
15
|
+
# +-------------------------------------------------------------------------
|
16
|
+
|
17
|
+
require 'active_support/core_ext/hash/keys'
|
18
|
+
|
19
|
+
module QingCloud
|
20
|
+
module SDK
|
21
|
+
# QingCloud provides QingCloud Service API (API Version 2013-08-30)
|
22
|
+
class QingCloudService
|
23
|
+
attr_accessor :config, :properties
|
24
|
+
|
25
|
+
def initialize(config)
|
26
|
+
self.config = config
|
27
|
+
self.properties = {
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
# Documentation URL: https://docs.qingcloud.com/api/zone/describe_zones.html
|
32
|
+
def describe_zones(status: [], zones: [])
|
33
|
+
input = {
|
34
|
+
config: config,
|
35
|
+
properties: properties,
|
36
|
+
api_name: 'DescribeZones',
|
37
|
+
request_method: 'GET',
|
38
|
+
request_params: {
|
39
|
+
'status' => status,
|
40
|
+
'zones' => zones,
|
41
|
+
},
|
42
|
+
}
|
43
|
+
|
44
|
+
describe_zones_input_validate input
|
45
|
+
|
46
|
+
request = Request.new input
|
47
|
+
request.send
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def describe_zones_input_validate(input)
|
53
|
+
input.deep_stringify_keys!
|
54
|
+
end
|
55
|
+
|
56
|
+
public
|
57
|
+
|
58
|
+
def cache(zone)
|
59
|
+
properties = {
|
60
|
+
'zone' => zone,
|
61
|
+
}
|
62
|
+
CacheService.new(config, self.properties.merge(properties))
|
63
|
+
end
|
64
|
+
|
65
|
+
def dns_alias(zone)
|
66
|
+
properties = {
|
67
|
+
'zone' => zone,
|
68
|
+
}
|
69
|
+
DNSAliasService.new(config, self.properties.merge(properties))
|
70
|
+
end
|
71
|
+
|
72
|
+
def eip(zone)
|
73
|
+
properties = {
|
74
|
+
'zone' => zone,
|
75
|
+
}
|
76
|
+
EIPService.new(config, self.properties.merge(properties))
|
77
|
+
end
|
78
|
+
|
79
|
+
def image(zone)
|
80
|
+
properties = {
|
81
|
+
'zone' => zone,
|
82
|
+
}
|
83
|
+
ImageService.new(config, self.properties.merge(properties))
|
84
|
+
end
|
85
|
+
|
86
|
+
def instance(zone)
|
87
|
+
properties = {
|
88
|
+
'zone' => zone,
|
89
|
+
}
|
90
|
+
InstanceService.new(config, self.properties.merge(properties))
|
91
|
+
end
|
92
|
+
|
93
|
+
def job(zone)
|
94
|
+
properties = {
|
95
|
+
'zone' => zone,
|
96
|
+
}
|
97
|
+
JobService.new(config, self.properties.merge(properties))
|
98
|
+
end
|
99
|
+
|
100
|
+
def key_pair(zone)
|
101
|
+
properties = {
|
102
|
+
'zone' => zone,
|
103
|
+
}
|
104
|
+
KeyPairService.new(config, self.properties.merge(properties))
|
105
|
+
end
|
106
|
+
|
107
|
+
def load_balancer(zone)
|
108
|
+
properties = {
|
109
|
+
'zone' => zone,
|
110
|
+
}
|
111
|
+
LoadBalancerService.new(config, self.properties.merge(properties))
|
112
|
+
end
|
113
|
+
|
114
|
+
def mongo(zone)
|
115
|
+
properties = {
|
116
|
+
'zone' => zone,
|
117
|
+
}
|
118
|
+
MongoService.new(config, self.properties.merge(properties))
|
119
|
+
end
|
120
|
+
|
121
|
+
def rdb(zone)
|
122
|
+
properties = {
|
123
|
+
'zone' => zone,
|
124
|
+
}
|
125
|
+
RDBService.new(config, self.properties.merge(properties))
|
126
|
+
end
|
127
|
+
|
128
|
+
def router(zone)
|
129
|
+
properties = {
|
130
|
+
'zone' => zone,
|
131
|
+
}
|
132
|
+
RouterService.new(config, self.properties.merge(properties))
|
133
|
+
end
|
134
|
+
|
135
|
+
def security_group(zone)
|
136
|
+
properties = {
|
137
|
+
'zone' => zone,
|
138
|
+
}
|
139
|
+
SecurityGroupService.new(config, self.properties.merge(properties))
|
140
|
+
end
|
141
|
+
|
142
|
+
def shared_storage(zone)
|
143
|
+
properties = {
|
144
|
+
'zone' => zone,
|
145
|
+
}
|
146
|
+
SharedStorageService.new(config, self.properties.merge(properties))
|
147
|
+
end
|
148
|
+
|
149
|
+
def snapshot(zone)
|
150
|
+
properties = {
|
151
|
+
'zone' => zone,
|
152
|
+
}
|
153
|
+
SnapshotService.new(config, self.properties.merge(properties))
|
154
|
+
end
|
155
|
+
|
156
|
+
def tag(zone)
|
157
|
+
properties = {
|
158
|
+
'zone' => zone,
|
159
|
+
}
|
160
|
+
TagService.new(config, self.properties.merge(properties))
|
161
|
+
end
|
162
|
+
|
163
|
+
def user_data(zone)
|
164
|
+
properties = {
|
165
|
+
'zone' => zone,
|
166
|
+
}
|
167
|
+
UserDataService.new(config, self.properties.merge(properties))
|
168
|
+
end
|
169
|
+
|
170
|
+
def volume(zone)
|
171
|
+
properties = {
|
172
|
+
'zone' => zone,
|
173
|
+
}
|
174
|
+
VolumeService.new(config, self.properties.merge(properties))
|
175
|
+
end
|
176
|
+
|
177
|
+
def vxnet(zone)
|
178
|
+
properties = {
|
179
|
+
'zone' => zone,
|
180
|
+
}
|
181
|
+
VxNetService.new(config, self.properties.merge(properties))
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
@@ -0,0 +1,751 @@
|
|
1
|
+
# +-------------------------------------------------------------------------
|
2
|
+
# | Copyright (C) 2016 Yunify, Inc.
|
3
|
+
# +-------------------------------------------------------------------------
|
4
|
+
# | Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# | you may not use this work except in compliance with the License.
|
6
|
+
# | You may obtain a copy of the License in the LICENSE file, or at:
|
7
|
+
# |
|
8
|
+
# | http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
# |
|
10
|
+
# | Unless required by applicable law or agreed to in writing, software
|
11
|
+
# | distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# | See the License for the specific language governing permissions and
|
14
|
+
# | limitations under the License.
|
15
|
+
# +-------------------------------------------------------------------------
|
16
|
+
|
17
|
+
require 'active_support/core_ext/hash/keys'
|
18
|
+
|
19
|
+
module QingCloud
|
20
|
+
module SDK
|
21
|
+
class RDBService
|
22
|
+
attr_accessor :config, :properties
|
23
|
+
|
24
|
+
def initialize(config, properties)
|
25
|
+
self.config = config
|
26
|
+
self.properties = properties.deep_symbolize_keys
|
27
|
+
end
|
28
|
+
|
29
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/apply_rdb_parameter_group.html
|
30
|
+
def apply_rdb_parameter_group(rdb: '')
|
31
|
+
input = {
|
32
|
+
config: config,
|
33
|
+
properties: properties,
|
34
|
+
api_name: 'ApplyRDBParameterGroup',
|
35
|
+
request_method: 'GET',
|
36
|
+
request_params: {
|
37
|
+
'rdb' => rdb,
|
38
|
+
},
|
39
|
+
}
|
40
|
+
|
41
|
+
apply_rdb_parameter_group_input_validate input
|
42
|
+
|
43
|
+
request = Request.new input
|
44
|
+
request.send
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def apply_rdb_parameter_group_input_validate(input)
|
50
|
+
input.deep_stringify_keys!
|
51
|
+
|
52
|
+
unless !input['request_params']['rdb'].nil? && !input['request_params']['rdb'].to_s.empty?
|
53
|
+
raise ParameterRequiredError.new('rdb', 'ApplyRDBParameterGroupInput')
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
public
|
58
|
+
|
59
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/cease_rdb_instance.html
|
60
|
+
def cease_rdb_instance(rdb: '', rdb_instance: '')
|
61
|
+
input = {
|
62
|
+
config: config,
|
63
|
+
properties: properties,
|
64
|
+
api_name: 'CeaseRDBInstance',
|
65
|
+
request_method: 'GET',
|
66
|
+
request_params: {
|
67
|
+
'rdb' => rdb,
|
68
|
+
'rdb_instance' => rdb_instance,
|
69
|
+
},
|
70
|
+
}
|
71
|
+
|
72
|
+
cease_rdb_instance_input_validate input
|
73
|
+
|
74
|
+
request = Request.new input
|
75
|
+
request.send
|
76
|
+
end
|
77
|
+
|
78
|
+
private
|
79
|
+
|
80
|
+
def cease_rdb_instance_input_validate(input)
|
81
|
+
input.deep_stringify_keys!
|
82
|
+
|
83
|
+
unless !input['request_params']['rdb'].nil? && !input['request_params']['rdb'].to_s.empty?
|
84
|
+
raise ParameterRequiredError.new('rdb', 'CeaseRDBInstanceInput')
|
85
|
+
end
|
86
|
+
|
87
|
+
unless !input['request_params']['rdb_instance'].nil? && !input['request_params']['rdb_instance'].to_s.empty?
|
88
|
+
raise ParameterRequiredError.new('rdb_instance', 'CeaseRDBInstanceInput')
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
public
|
93
|
+
|
94
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/copy_rdb_instance_files_to_ftp.html
|
95
|
+
def copy_rdb_instance_files_to_f_t_p(files: [], rdb_instance: '')
|
96
|
+
input = {
|
97
|
+
config: config,
|
98
|
+
properties: properties,
|
99
|
+
api_name: 'CopyRDBInstanceFilesToFTP',
|
100
|
+
request_method: 'GET',
|
101
|
+
request_params: {
|
102
|
+
'files' => files,
|
103
|
+
'rdb_instance' => rdb_instance,
|
104
|
+
},
|
105
|
+
}
|
106
|
+
|
107
|
+
copy_rdb_instance_files_to_f_t_p_input_validate input
|
108
|
+
|
109
|
+
request = Request.new input
|
110
|
+
request.send
|
111
|
+
end
|
112
|
+
|
113
|
+
private
|
114
|
+
|
115
|
+
def copy_rdb_instance_files_to_f_t_p_input_validate(input)
|
116
|
+
input.deep_stringify_keys!
|
117
|
+
|
118
|
+
unless !input['request_params']['files'].nil? && !input['request_params']['files'].to_s.empty?
|
119
|
+
raise ParameterRequiredError.new('files', 'CopyRDBInstanceFilesToFTPInput')
|
120
|
+
end
|
121
|
+
|
122
|
+
unless !input['request_params']['rdb_instance'].nil? && !input['request_params']['rdb_instance'].to_s.empty?
|
123
|
+
raise ParameterRequiredError.new('rdb_instance', 'CopyRDBInstanceFilesToFTPInput')
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
public
|
128
|
+
|
129
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/create_rdb.html
|
130
|
+
def create_rdb(auto_backup_time: nil, description: '', engine_version: '', node_count: nil, private_ips: [], proxy_count: nil, rdb_class: nil, rdb_engine: '', rdb_name: '', rdb_password: '', rdb_type: nil, rdb_username: '', storage_size: nil, vxnet: '')
|
131
|
+
input = {
|
132
|
+
config: config,
|
133
|
+
properties: properties,
|
134
|
+
api_name: 'CreateRDB',
|
135
|
+
request_method: 'GET',
|
136
|
+
request_params: {
|
137
|
+
'auto_backup_time' => auto_backup_time,
|
138
|
+
'description' => description,
|
139
|
+
'engine_version' => engine_version, # engine_version's available values: mysql,5.5, mysql,5.6, mysql,5.7, psql,9.3, psql,9.4
|
140
|
+
'node_count' => node_count,
|
141
|
+
'private_ips' => private_ips,
|
142
|
+
'proxy_count' => proxy_count,
|
143
|
+
'rdb_class' => rdb_class,
|
144
|
+
'rdb_engine' => rdb_engine, # rdb_engine's available values: mysql, psql
|
145
|
+
'rdb_name' => rdb_name,
|
146
|
+
'rdb_password' => rdb_password,
|
147
|
+
'rdb_type' => rdb_type, # rdb_type's available values: 1, 2, 4, 8, 16, 32
|
148
|
+
'rdb_username' => rdb_username,
|
149
|
+
'storage_size' => storage_size,
|
150
|
+
'vxnet' => vxnet,
|
151
|
+
},
|
152
|
+
}
|
153
|
+
|
154
|
+
create_rdb_input_validate input
|
155
|
+
|
156
|
+
request = Request.new input
|
157
|
+
request.send
|
158
|
+
end
|
159
|
+
|
160
|
+
private
|
161
|
+
|
162
|
+
def create_rdb_input_validate(input)
|
163
|
+
input.deep_stringify_keys!
|
164
|
+
|
165
|
+
if input['request_params']['engine_version'] && !input['request_params']['engine_version'].to_s.empty?
|
166
|
+
engine_version_valid_values = ['mysql,5.5', 'mysql,5.6', 'mysql,5.7', 'psql,9.3', 'psql,9.4']
|
167
|
+
unless engine_version_valid_values.include? input['request_params']['engine_version'].to_s
|
168
|
+
raise ParameterValueNotAllowedError.new(
|
169
|
+
'engine_version',
|
170
|
+
input['request_params']['engine_version'],
|
171
|
+
engine_version_valid_values,
|
172
|
+
)
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
input['request_params']['private_ips'].map do |x|
|
177
|
+
end
|
178
|
+
|
179
|
+
if input['request_params']['rdb_engine'] && !input['request_params']['rdb_engine'].to_s.empty?
|
180
|
+
rdb_engine_valid_values = %w(mysql psql)
|
181
|
+
unless rdb_engine_valid_values.include? input['request_params']['rdb_engine'].to_s
|
182
|
+
raise ParameterValueNotAllowedError.new(
|
183
|
+
'rdb_engine',
|
184
|
+
input['request_params']['rdb_engine'],
|
185
|
+
rdb_engine_valid_values,
|
186
|
+
)
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
unless !input['request_params']['rdb_password'].nil? && !input['request_params']['rdb_password'].to_s.empty?
|
191
|
+
raise ParameterRequiredError.new('rdb_password', 'CreateRDBInput')
|
192
|
+
end
|
193
|
+
|
194
|
+
unless !input['request_params']['rdb_type'].nil? && !input['request_params']['rdb_type'].to_s.empty?
|
195
|
+
raise ParameterRequiredError.new('rdb_type', 'CreateRDBInput')
|
196
|
+
end
|
197
|
+
|
198
|
+
if input['request_params']['rdb_type'] && !input['request_params']['rdb_type'].to_s.empty?
|
199
|
+
rdb_type_valid_values = %w(1 2 4 8 16 32)
|
200
|
+
unless rdb_type_valid_values.include? input['request_params']['rdb_type'].to_s
|
201
|
+
raise ParameterValueNotAllowedError.new(
|
202
|
+
'rdb_type',
|
203
|
+
input['request_params']['rdb_type'],
|
204
|
+
rdb_type_valid_values,
|
205
|
+
)
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
unless !input['request_params']['rdb_username'].nil? && !input['request_params']['rdb_username'].to_s.empty?
|
210
|
+
raise ParameterRequiredError.new('rdb_username', 'CreateRDBInput')
|
211
|
+
end
|
212
|
+
|
213
|
+
unless !input['request_params']['storage_size'].nil? && !input['request_params']['storage_size'].to_s.empty?
|
214
|
+
raise ParameterRequiredError.new('storage_size', 'CreateRDBInput')
|
215
|
+
end
|
216
|
+
|
217
|
+
unless !input['request_params']['vxnet'].nil? && !input['request_params']['vxnet'].to_s.empty?
|
218
|
+
raise ParameterRequiredError.new('vxnet', 'CreateRDBInput')
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
public
|
223
|
+
|
224
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/create_rdb_from_snapshot.html
|
225
|
+
def create_rdb_from_snapshot(auto_backup_time: nil, description: '', engine_version: '', node_count: nil, private_ips: [], proxy_count: nil, rdb_engine: '', rdb_name: '', rdb_type: nil, snapshot: '', storage_size: nil, vxnet: '')
|
226
|
+
input = {
|
227
|
+
config: config,
|
228
|
+
properties: properties,
|
229
|
+
api_name: 'CreateRDBFromSnapshot',
|
230
|
+
request_method: 'GET',
|
231
|
+
request_params: {
|
232
|
+
'auto_backup_time' => auto_backup_time,
|
233
|
+
'description' => description,
|
234
|
+
'engine_version' => engine_version, # engine_version's available values: mysql,5.5, mysql,5.6, mysql,5.7, psql,9.3, psql,9.4
|
235
|
+
'node_count' => node_count,
|
236
|
+
'private_ips' => private_ips,
|
237
|
+
'proxy_count' => proxy_count,
|
238
|
+
'rdb_engine' => rdb_engine, # rdb_engine's available values: mysql, psql
|
239
|
+
'rdb_name' => rdb_name,
|
240
|
+
'rdb_type' => rdb_type, # rdb_type's available values: 1, 2, 4, 8, 16, 32
|
241
|
+
'snapshot' => snapshot,
|
242
|
+
'storage_size' => storage_size,
|
243
|
+
'vxnet' => vxnet,
|
244
|
+
},
|
245
|
+
}
|
246
|
+
|
247
|
+
create_rdb_from_snapshot_input_validate input
|
248
|
+
|
249
|
+
request = Request.new input
|
250
|
+
request.send
|
251
|
+
end
|
252
|
+
|
253
|
+
private
|
254
|
+
|
255
|
+
def create_rdb_from_snapshot_input_validate(input)
|
256
|
+
input.deep_stringify_keys!
|
257
|
+
|
258
|
+
if input['request_params']['engine_version'] && !input['request_params']['engine_version'].to_s.empty?
|
259
|
+
engine_version_valid_values = ['mysql,5.5', 'mysql,5.6', 'mysql,5.7', 'psql,9.3', 'psql,9.4']
|
260
|
+
unless engine_version_valid_values.include? input['request_params']['engine_version'].to_s
|
261
|
+
raise ParameterValueNotAllowedError.new(
|
262
|
+
'engine_version',
|
263
|
+
input['request_params']['engine_version'],
|
264
|
+
engine_version_valid_values,
|
265
|
+
)
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
269
|
+
input['request_params']['private_ips'].map do |x|
|
270
|
+
end
|
271
|
+
|
272
|
+
if input['request_params']['rdb_engine'] && !input['request_params']['rdb_engine'].to_s.empty?
|
273
|
+
rdb_engine_valid_values = %w(mysql psql)
|
274
|
+
unless rdb_engine_valid_values.include? input['request_params']['rdb_engine'].to_s
|
275
|
+
raise ParameterValueNotAllowedError.new(
|
276
|
+
'rdb_engine',
|
277
|
+
input['request_params']['rdb_engine'],
|
278
|
+
rdb_engine_valid_values,
|
279
|
+
)
|
280
|
+
end
|
281
|
+
end
|
282
|
+
|
283
|
+
unless !input['request_params']['rdb_type'].nil? && !input['request_params']['rdb_type'].to_s.empty?
|
284
|
+
raise ParameterRequiredError.new('rdb_type', 'CreateRDBFromSnapshotInput')
|
285
|
+
end
|
286
|
+
|
287
|
+
if input['request_params']['rdb_type'] && !input['request_params']['rdb_type'].to_s.empty?
|
288
|
+
rdb_type_valid_values = %w(1 2 4 8 16 32)
|
289
|
+
unless rdb_type_valid_values.include? input['request_params']['rdb_type'].to_s
|
290
|
+
raise ParameterValueNotAllowedError.new(
|
291
|
+
'rdb_type',
|
292
|
+
input['request_params']['rdb_type'],
|
293
|
+
rdb_type_valid_values,
|
294
|
+
)
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
unless !input['request_params']['snapshot'].nil? && !input['request_params']['snapshot'].to_s.empty?
|
299
|
+
raise ParameterRequiredError.new('snapshot', 'CreateRDBFromSnapshotInput')
|
300
|
+
end
|
301
|
+
|
302
|
+
unless !input['request_params']['vxnet'].nil? && !input['request_params']['vxnet'].to_s.empty?
|
303
|
+
raise ParameterRequiredError.new('vxnet', 'CreateRDBFromSnapshotInput')
|
304
|
+
end
|
305
|
+
end
|
306
|
+
|
307
|
+
public
|
308
|
+
|
309
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/create_temp_rdb_instance_from_snapshot.html
|
310
|
+
def create_temp_rdb_instance_from_snapshot(rdb: '', snapshot: '')
|
311
|
+
input = {
|
312
|
+
config: config,
|
313
|
+
properties: properties,
|
314
|
+
api_name: 'CreateTempRDBInstanceFromSnapshot',
|
315
|
+
request_method: 'GET',
|
316
|
+
request_params: {
|
317
|
+
'rdb' => rdb,
|
318
|
+
'snapshot' => snapshot,
|
319
|
+
},
|
320
|
+
}
|
321
|
+
|
322
|
+
create_temp_rdb_instance_from_snapshot_input_validate input
|
323
|
+
|
324
|
+
request = Request.new input
|
325
|
+
request.send
|
326
|
+
end
|
327
|
+
|
328
|
+
private
|
329
|
+
|
330
|
+
def create_temp_rdb_instance_from_snapshot_input_validate(input)
|
331
|
+
input.deep_stringify_keys!
|
332
|
+
|
333
|
+
unless !input['request_params']['rdb'].nil? && !input['request_params']['rdb'].to_s.empty?
|
334
|
+
raise ParameterRequiredError.new('rdb', 'CreateTempRDBInstanceFromSnapshotInput')
|
335
|
+
end
|
336
|
+
|
337
|
+
unless !input['request_params']['snapshot'].nil? && !input['request_params']['snapshot'].to_s.empty?
|
338
|
+
raise ParameterRequiredError.new('snapshot', 'CreateTempRDBInstanceFromSnapshotInput')
|
339
|
+
end
|
340
|
+
end
|
341
|
+
|
342
|
+
public
|
343
|
+
|
344
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/delete_rdbs.html
|
345
|
+
def delete_rdbs(rdbs: [])
|
346
|
+
input = {
|
347
|
+
config: config,
|
348
|
+
properties: properties,
|
349
|
+
api_name: 'DeleteRDBs',
|
350
|
+
request_method: 'GET',
|
351
|
+
request_params: {
|
352
|
+
'rdbs' => rdbs,
|
353
|
+
},
|
354
|
+
}
|
355
|
+
|
356
|
+
delete_rdbs_input_validate input
|
357
|
+
|
358
|
+
request = Request.new input
|
359
|
+
request.send
|
360
|
+
end
|
361
|
+
|
362
|
+
private
|
363
|
+
|
364
|
+
def delete_rdbs_input_validate(input)
|
365
|
+
input.deep_stringify_keys!
|
366
|
+
|
367
|
+
unless !input['request_params']['rdbs'].nil? && !input['request_params']['rdbs'].to_s.empty?
|
368
|
+
raise ParameterRequiredError.new('rdbs', 'DeleteRDBsInput')
|
369
|
+
end
|
370
|
+
end
|
371
|
+
|
372
|
+
public
|
373
|
+
|
374
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/describe_rdb_parameters.html
|
375
|
+
def describe_rdb_parameters(limit: nil, offset: nil, parameter_group: '', rdb: '')
|
376
|
+
input = {
|
377
|
+
config: config,
|
378
|
+
properties: properties,
|
379
|
+
api_name: 'DescribeRDBParameters',
|
380
|
+
request_method: 'GET',
|
381
|
+
request_params: {
|
382
|
+
'limit' => limit,
|
383
|
+
'offset' => offset,
|
384
|
+
'parameter_group' => parameter_group,
|
385
|
+
'rdb' => rdb,
|
386
|
+
},
|
387
|
+
}
|
388
|
+
|
389
|
+
describe_rdb_parameters_input_validate input
|
390
|
+
|
391
|
+
request = Request.new input
|
392
|
+
request.send
|
393
|
+
end
|
394
|
+
|
395
|
+
private
|
396
|
+
|
397
|
+
def describe_rdb_parameters_input_validate(input)
|
398
|
+
input.deep_stringify_keys!
|
399
|
+
|
400
|
+
unless !input['request_params']['rdb'].nil? && !input['request_params']['rdb'].to_s.empty?
|
401
|
+
raise ParameterRequiredError.new('rdb', 'DescribeRDBParametersInput')
|
402
|
+
end
|
403
|
+
end
|
404
|
+
|
405
|
+
public
|
406
|
+
|
407
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/describe_rdbs.html
|
408
|
+
def describe_rdbs(limit: nil, offset: nil, rdb_engine: '', rdb_name: '', rdbs: [], search_word: '', status: [], tags: [], verbose: nil)
|
409
|
+
input = {
|
410
|
+
config: config,
|
411
|
+
properties: properties,
|
412
|
+
api_name: 'DescribeRDBs',
|
413
|
+
request_method: 'GET',
|
414
|
+
request_params: {
|
415
|
+
'limit' => limit,
|
416
|
+
'offset' => offset,
|
417
|
+
'rdb_engine' => rdb_engine,
|
418
|
+
'rdb_name' => rdb_name,
|
419
|
+
'rdbs' => rdbs,
|
420
|
+
'search_word' => search_word,
|
421
|
+
'status' => status,
|
422
|
+
'tags' => tags,
|
423
|
+
'verbose' => verbose,
|
424
|
+
},
|
425
|
+
}
|
426
|
+
|
427
|
+
describe_rdbs_input_validate input
|
428
|
+
|
429
|
+
request = Request.new input
|
430
|
+
request.send
|
431
|
+
end
|
432
|
+
|
433
|
+
private
|
434
|
+
|
435
|
+
def describe_rdbs_input_validate(input)
|
436
|
+
input.deep_stringify_keys!
|
437
|
+
end
|
438
|
+
|
439
|
+
public
|
440
|
+
|
441
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/get_rdb_instance_files.html
|
442
|
+
def get_rdb_instance_files(rdb_instance: '')
|
443
|
+
input = {
|
444
|
+
config: config,
|
445
|
+
properties: properties,
|
446
|
+
api_name: 'GetRDBInstanceFiles',
|
447
|
+
request_method: 'GET',
|
448
|
+
request_params: {
|
449
|
+
'rdb_instance' => rdb_instance,
|
450
|
+
},
|
451
|
+
}
|
452
|
+
|
453
|
+
get_rdb_instance_files_input_validate input
|
454
|
+
|
455
|
+
request = Request.new input
|
456
|
+
request.send
|
457
|
+
end
|
458
|
+
|
459
|
+
private
|
460
|
+
|
461
|
+
def get_rdb_instance_files_input_validate(input)
|
462
|
+
input.deep_stringify_keys!
|
463
|
+
|
464
|
+
unless !input['request_params']['rdb_instance'].nil? && !input['request_params']['rdb_instance'].to_s.empty?
|
465
|
+
raise ParameterRequiredError.new('rdb_instance', 'GetRDBInstanceFilesInput')
|
466
|
+
end
|
467
|
+
end
|
468
|
+
|
469
|
+
public
|
470
|
+
|
471
|
+
# Documentation URL: https://docs.qingcloud.com/api/monitor/get_rdb_monitor.html
|
472
|
+
def get_rdb_monitor(end_time: '', meters: [], rdb_engine: '', rdb_instance: '', resource: '', role: '', start_time: '', step: '')
|
473
|
+
input = {
|
474
|
+
config: config,
|
475
|
+
properties: properties,
|
476
|
+
api_name: 'GetRDBMonitor',
|
477
|
+
request_method: 'GET',
|
478
|
+
request_params: {
|
479
|
+
'end_time' => end_time,
|
480
|
+
'meters' => meters,
|
481
|
+
'rdb_engine' => rdb_engine,
|
482
|
+
'rdb_instance' => rdb_instance,
|
483
|
+
'resource' => resource,
|
484
|
+
'role' => role,
|
485
|
+
'start_time' => start_time,
|
486
|
+
'step' => step, # step's available values: 5m, 15m, 2h, 1d
|
487
|
+
},
|
488
|
+
}
|
489
|
+
|
490
|
+
get_rdb_monitor_input_validate input
|
491
|
+
|
492
|
+
request = Request.new input
|
493
|
+
request.send
|
494
|
+
end
|
495
|
+
|
496
|
+
private
|
497
|
+
|
498
|
+
def get_rdb_monitor_input_validate(input)
|
499
|
+
input.deep_stringify_keys!
|
500
|
+
|
501
|
+
unless !input['request_params']['end_time'].nil? && !input['request_params']['end_time'].to_s.empty?
|
502
|
+
raise ParameterRequiredError.new('end_time', 'GetRDBMonitorInput')
|
503
|
+
end
|
504
|
+
|
505
|
+
unless !input['request_params']['meters'].nil? && !input['request_params']['meters'].to_s.empty?
|
506
|
+
raise ParameterRequiredError.new('meters', 'GetRDBMonitorInput')
|
507
|
+
end
|
508
|
+
|
509
|
+
unless !input['request_params']['rdb_engine'].nil? && !input['request_params']['rdb_engine'].to_s.empty?
|
510
|
+
raise ParameterRequiredError.new('rdb_engine', 'GetRDBMonitorInput')
|
511
|
+
end
|
512
|
+
|
513
|
+
unless !input['request_params']['resource'].nil? && !input['request_params']['resource'].to_s.empty?
|
514
|
+
raise ParameterRequiredError.new('resource', 'GetRDBMonitorInput')
|
515
|
+
end
|
516
|
+
|
517
|
+
unless !input['request_params']['role'].nil? && !input['request_params']['role'].to_s.empty?
|
518
|
+
raise ParameterRequiredError.new('role', 'GetRDBMonitorInput')
|
519
|
+
end
|
520
|
+
|
521
|
+
unless !input['request_params']['start_time'].nil? && !input['request_params']['start_time'].to_s.empty?
|
522
|
+
raise ParameterRequiredError.new('start_time', 'GetRDBMonitorInput')
|
523
|
+
end
|
524
|
+
|
525
|
+
unless !input['request_params']['step'].nil? && !input['request_params']['step'].to_s.empty?
|
526
|
+
raise ParameterRequiredError.new('step', 'GetRDBMonitorInput')
|
527
|
+
end
|
528
|
+
|
529
|
+
if input['request_params']['step'] && !input['request_params']['step'].to_s.empty?
|
530
|
+
step_valid_values = %w(5m 15m 2h 1d)
|
531
|
+
unless step_valid_values.include? input['request_params']['step'].to_s
|
532
|
+
raise ParameterValueNotAllowedError.new(
|
533
|
+
'step',
|
534
|
+
input['request_params']['step'],
|
535
|
+
step_valid_values,
|
536
|
+
)
|
537
|
+
end
|
538
|
+
end
|
539
|
+
end
|
540
|
+
|
541
|
+
public
|
542
|
+
|
543
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/modify_rdb_parameters.html
|
544
|
+
def modify_rdb_parameters(parameters: [], rdb: '')
|
545
|
+
input = {
|
546
|
+
config: config,
|
547
|
+
properties: properties,
|
548
|
+
api_name: 'ModifyRDBParameters',
|
549
|
+
request_method: 'GET',
|
550
|
+
request_params: {
|
551
|
+
'parameters' => parameters,
|
552
|
+
'rdb' => rdb,
|
553
|
+
},
|
554
|
+
}
|
555
|
+
|
556
|
+
modify_rdb_parameters_input_validate input
|
557
|
+
|
558
|
+
request = Request.new input
|
559
|
+
request.send
|
560
|
+
end
|
561
|
+
|
562
|
+
private
|
563
|
+
|
564
|
+
def modify_rdb_parameters_input_validate(input)
|
565
|
+
input.deep_stringify_keys!
|
566
|
+
|
567
|
+
input['request_params']['parameters'].map do |x|
|
568
|
+
end
|
569
|
+
|
570
|
+
unless !input['request_params']['rdb'].nil? && !input['request_params']['rdb'].to_s.empty?
|
571
|
+
raise ParameterRequiredError.new('rdb', 'ModifyRDBParametersInput')
|
572
|
+
end
|
573
|
+
end
|
574
|
+
|
575
|
+
public
|
576
|
+
|
577
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/rdbs_join_vxnet.html
|
578
|
+
def rdbs_join_vxnet(rdbs: [], vxnet: '')
|
579
|
+
input = {
|
580
|
+
config: config,
|
581
|
+
properties: properties,
|
582
|
+
api_name: 'RDBsJoinVxnet',
|
583
|
+
request_method: 'GET',
|
584
|
+
request_params: {
|
585
|
+
'rdbs' => rdbs,
|
586
|
+
'vxnet' => vxnet,
|
587
|
+
},
|
588
|
+
}
|
589
|
+
|
590
|
+
rdbs_join_vxnet_input_validate input
|
591
|
+
|
592
|
+
request = Request.new input
|
593
|
+
request.send
|
594
|
+
end
|
595
|
+
|
596
|
+
private
|
597
|
+
|
598
|
+
def rdbs_join_vxnet_input_validate(input)
|
599
|
+
input.deep_stringify_keys!
|
600
|
+
|
601
|
+
unless !input['request_params']['rdbs'].nil? && !input['request_params']['rdbs'].to_s.empty?
|
602
|
+
raise ParameterRequiredError.new('rdbs', 'RDBsJoinVxnetInput')
|
603
|
+
end
|
604
|
+
|
605
|
+
unless !input['request_params']['vxnet'].nil? && !input['request_params']['vxnet'].to_s.empty?
|
606
|
+
raise ParameterRequiredError.new('vxnet', 'RDBsJoinVxnetInput')
|
607
|
+
end
|
608
|
+
end
|
609
|
+
|
610
|
+
public
|
611
|
+
|
612
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/rdbs_leave_vxnet.html
|
613
|
+
def rdbs_leave_vxnet(rdbs: [], vxnet: '')
|
614
|
+
input = {
|
615
|
+
config: config,
|
616
|
+
properties: properties,
|
617
|
+
api_name: 'RDBsLeaveVxnet',
|
618
|
+
request_method: 'GET',
|
619
|
+
request_params: {
|
620
|
+
'rdbs' => rdbs,
|
621
|
+
'vxnet' => vxnet,
|
622
|
+
},
|
623
|
+
}
|
624
|
+
|
625
|
+
rdbs_leave_vxnet_input_validate input
|
626
|
+
|
627
|
+
request = Request.new input
|
628
|
+
request.send
|
629
|
+
end
|
630
|
+
|
631
|
+
private
|
632
|
+
|
633
|
+
def rdbs_leave_vxnet_input_validate(input)
|
634
|
+
input.deep_stringify_keys!
|
635
|
+
|
636
|
+
unless !input['request_params']['rdbs'].nil? && !input['request_params']['rdbs'].to_s.empty?
|
637
|
+
raise ParameterRequiredError.new('rdbs', 'RDBsLeaveVxnetInput')
|
638
|
+
end
|
639
|
+
|
640
|
+
unless !input['request_params']['vxnet'].nil? && !input['request_params']['vxnet'].to_s.empty?
|
641
|
+
raise ParameterRequiredError.new('vxnet', 'RDBsLeaveVxnetInput')
|
642
|
+
end
|
643
|
+
end
|
644
|
+
|
645
|
+
public
|
646
|
+
|
647
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/resize_rdbs.html
|
648
|
+
def resize_rdbs(rdb_type: nil, rdbs: [], storage_size: nil)
|
649
|
+
input = {
|
650
|
+
config: config,
|
651
|
+
properties: properties,
|
652
|
+
api_name: 'ResizeRDBs',
|
653
|
+
request_method: 'GET',
|
654
|
+
request_params: {
|
655
|
+
'rdb_type' => rdb_type, # rdb_type's available values: 1, 2, 4, 8, 16, 32
|
656
|
+
'rdbs' => rdbs,
|
657
|
+
'storage_size' => storage_size,
|
658
|
+
},
|
659
|
+
}
|
660
|
+
|
661
|
+
resize_rdbs_input_validate input
|
662
|
+
|
663
|
+
request = Request.new input
|
664
|
+
request.send
|
665
|
+
end
|
666
|
+
|
667
|
+
private
|
668
|
+
|
669
|
+
def resize_rdbs_input_validate(input)
|
670
|
+
input.deep_stringify_keys!
|
671
|
+
|
672
|
+
if input['request_params']['rdb_type'] && !input['request_params']['rdb_type'].to_s.empty?
|
673
|
+
rdb_type_valid_values = %w(1 2 4 8 16 32)
|
674
|
+
unless rdb_type_valid_values.include? input['request_params']['rdb_type'].to_s
|
675
|
+
raise ParameterValueNotAllowedError.new(
|
676
|
+
'rdb_type',
|
677
|
+
input['request_params']['rdb_type'],
|
678
|
+
rdb_type_valid_values,
|
679
|
+
)
|
680
|
+
end
|
681
|
+
end
|
682
|
+
|
683
|
+
unless !input['request_params']['rdbs'].nil? && !input['request_params']['rdbs'].to_s.empty?
|
684
|
+
raise ParameterRequiredError.new('rdbs', 'ResizeRDBsInput')
|
685
|
+
end
|
686
|
+
end
|
687
|
+
|
688
|
+
public
|
689
|
+
|
690
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/start_rdbs.html
|
691
|
+
def start_rdbs(rdbs: [])
|
692
|
+
input = {
|
693
|
+
config: config,
|
694
|
+
properties: properties,
|
695
|
+
api_name: 'StartRDBs',
|
696
|
+
request_method: 'GET',
|
697
|
+
request_params: {
|
698
|
+
'rdbs' => rdbs,
|
699
|
+
},
|
700
|
+
}
|
701
|
+
|
702
|
+
start_rdbs_input_validate input
|
703
|
+
|
704
|
+
request = Request.new input
|
705
|
+
request.send
|
706
|
+
end
|
707
|
+
|
708
|
+
private
|
709
|
+
|
710
|
+
def start_rdbs_input_validate(input)
|
711
|
+
input.deep_stringify_keys!
|
712
|
+
|
713
|
+
unless !input['request_params']['rdbs'].nil? && !input['request_params']['rdbs'].to_s.empty?
|
714
|
+
raise ParameterRequiredError.new('rdbs', 'StartRDBsInput')
|
715
|
+
end
|
716
|
+
end
|
717
|
+
|
718
|
+
public
|
719
|
+
|
720
|
+
# Documentation URL: https://docs.qingcloud.com/api/rdb/stop_rdbs.html
|
721
|
+
def stop_rdbs(rdbs: [])
|
722
|
+
input = {
|
723
|
+
config: config,
|
724
|
+
properties: properties,
|
725
|
+
api_name: 'StopRDBs',
|
726
|
+
request_method: 'GET',
|
727
|
+
request_params: {
|
728
|
+
'rdbs' => rdbs,
|
729
|
+
},
|
730
|
+
}
|
731
|
+
|
732
|
+
stop_rdbs_input_validate input
|
733
|
+
|
734
|
+
request = Request.new input
|
735
|
+
request.send
|
736
|
+
end
|
737
|
+
|
738
|
+
private
|
739
|
+
|
740
|
+
def stop_rdbs_input_validate(input)
|
741
|
+
input.deep_stringify_keys!
|
742
|
+
|
743
|
+
unless !input['request_params']['rdbs'].nil? && !input['request_params']['rdbs'].to_s.empty?
|
744
|
+
raise ParameterRequiredError.new('rdbs', 'StopRDBsInput')
|
745
|
+
end
|
746
|
+
end
|
747
|
+
|
748
|
+
public
|
749
|
+
end
|
750
|
+
end
|
751
|
+
end
|