gs2-ruby-sdk-watch 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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 44e125588facd495cd3bfdc7d4411139110c91f3
4
+ data.tar.gz: 9b3d6865a9a2512d3805580f681eaa4f0c2ec222
5
+ SHA512:
6
+ metadata.gz: eef684d281562f63d9d093cf605ef435226e598332612dfbf5e39543cb3b6c4bd8c0cd8164dedb2b97642c82f121d351fde018f98718bd8d37110c61fda3334d
7
+ data.tar.gz: 17211d2f7ed472eb288cb694c6304e3eb712a7714cb9464acd154b721f679a51d05d26695eeffd8b987f952543197cb8cea9a16ce05d98a32c291753b638ae52
data/.buildpath ADDED
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <buildpath>
3
+ <buildpathentry kind="src" path="lib"/>
4
+ <buildpathentry kind="con" path="org.eclipse.dltk.launching.INTERPRETER_CONTAINER"/>
5
+ </buildpath>
data/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ .DS_Store
data/.project ADDED
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>gs2-ruby-sdk-watch</name>
4
+ <comment></comment>
5
+ <projects>
6
+ </projects>
7
+ <buildSpec>
8
+ <buildCommand>
9
+ <name>org.eclipse.dltk.core.scriptbuilder</name>
10
+ <arguments>
11
+ </arguments>
12
+ </buildCommand>
13
+ </buildSpec>
14
+ <natures>
15
+ <nature>org.eclipse.dltk.ruby.core.nature</nature>
16
+ </natures>
17
+ </projectDescription>
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+ gem 'test-unit', '3.1.0'
5
+ gem "simplecov", "~> 0.11"
data/README.md ADDED
@@ -0,0 +1,2 @@
1
+ gs2-ruby-sdk-watch
2
+ ===============
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "gs2/sdk/for/ruby/watch"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'gs2/watch/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "gs2-ruby-sdk-watch"
8
+ spec.version = Gs2::Watch::VERSION
9
+ spec.authors = ["Game Server Services, Inc."]
10
+ spec.email = ["contact@gs2.io"]
11
+ spec.licenses = "Apache-2.0"
12
+
13
+ spec.summary = %q{Game Server Services GS2-Watch Client Library}
14
+ spec.homepage = "https://gs2.io/"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = "exe"
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "gs2-ruby-sdk-core", "~> 0.0.1"
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.12"
24
+ spec.add_development_dependency "rake", "~> 10.0"
25
+ end
@@ -0,0 +1,310 @@
1
+ require 'gs2/core/AbstractClient.rb'
2
+
3
+ module Gs2 module Watch
4
+
5
+ # GS2-Watch クライアント
6
+ #
7
+ # @author Game Server Services, Inc.
8
+ class Client < Gs2::Core::AbstractClient
9
+
10
+ @@ENDPOINT = 'watch'
11
+
12
+ # コンストラクタ
13
+ #
14
+ # @param region [String] リージョン名
15
+ # @param gs2_client_id [String] GSIクライアントID
16
+ # @param gs2_client_secret [String] GSIクライアントシークレット
17
+ def initialize(region, gs2_client_id, gs2_client_secret)
18
+ super(region, gs2_client_id, gs2_client_secret)
19
+ end
20
+
21
+ # デバッグ用。通常利用する必要はありません。
22
+ def self.ENDPOINT(v = nil)
23
+ if v
24
+ @@ENDPOINT = v
25
+ else
26
+ return @@ENDPOINT
27
+ end
28
+ end
29
+
30
+ # アラームリストを取得
31
+ #
32
+ # @param pageToken [String] ページトークン
33
+ # @param limit [Integer] 取得件数
34
+ # @return [Array]
35
+ # * items
36
+ # [Array]
37
+ # * alermId => アラームID
38
+ # * ownerId => オーナーID
39
+ # * name => アラーム名
40
+ # * description => 説明文
41
+ # * service => 監視対象サービス
42
+ # * serviceId => 監視対象サービスID
43
+ # * operation => 監視対象オペレーション
44
+ # * expression => 演算子
45
+ # * threshold => 閾値
46
+ # * notificationId => 通知ID
47
+ # * createAt => 作成日時
48
+ # * updateAt => 更新日時
49
+ # * status => ステータス
50
+ # * lastStatusChangeAt => 最終ステータス更新日時
51
+ # * nextPageToken => 次ページトークン
52
+ def describe_alerm(pageToken = nil, limit = nil)
53
+ query = {}
54
+ if pageToken; query['pageToken'] = pageToken; end
55
+ if limit; query['limit'] = limit; end
56
+ return get(
57
+ 'Gs2Watch',
58
+ 'DescribeAlerm',
59
+ @@ENDPOINT,
60
+ '/alerm',
61
+ query);
62
+ end
63
+
64
+ # アラームを作成<br>
65
+ # <br>
66
+ # GS2 内のスタティスティックスに対して監視を行うことができます。<br>
67
+ # クオータの消費量に対して閾値を設定し、閾値を超えた際に通知を出すことができます。<br>
68
+ #
69
+ # @param request [Array]
70
+ # * name => アラーム名
71
+ # * description => 説明文
72
+ # * service => 監視対象サービス
73
+ # * serviceId => 監視対象サービスID
74
+ # * operation => 監視対象オペレーション
75
+ # * expression => 演算子(>=, >, <, <=)
76
+ # * threshold => 閾値
77
+ # * notificationId => 通知ID
78
+ # @return [Array]
79
+ # * item
80
+ # * alermId => アラームID
81
+ # * ownerId => オーナーID
82
+ # * name => アラーム名
83
+ # * description => 説明文
84
+ # * service => 監視対象サービス
85
+ # * serviceId => 監視対象サービスID
86
+ # * operation => 監視対象オペレーション
87
+ # * expression => 演算子
88
+ # * threshold => 閾値
89
+ # * notificationId => 通知ID
90
+ # * createAt => 作成日時
91
+ # * updateAt => 更新日時
92
+ # * status => ステータス
93
+ # * lastStatusChangeAt => 最終ステータス更新日時
94
+ def create_alerm(request)
95
+ if not request; raise ArgumentError.new(); end
96
+ body = {}
97
+ if request.has_key?('name'); body['name'] = request['name']; end
98
+ if request.has_key?('description'); body['description'] = request['description']; end
99
+ if request.has_key?('service'); body['service'] = request['service']; end
100
+ if request.has_key?('serviceId'); body['serviceId'] = request['serviceId']; end
101
+ if request.has_key?('operation'); body['operation'] = request['operation']; end
102
+ if request.has_key?('expression'); body['expression'] = request['expression']; end
103
+ if request.has_key?('threshold'); body['threshold'] = request['threshold']; end
104
+ if request.has_key?('notificationId'); body['notificationId'] = request['notificationId']; end
105
+ query = {}
106
+ return post(
107
+ 'Gs2Watch',
108
+ 'CreateAlerm',
109
+ @@ENDPOINT,
110
+ '/alerm',
111
+ body,
112
+ query);
113
+ end
114
+
115
+ # アラームを取得
116
+ #
117
+ # @param request [Array]
118
+ # * alermName => アラーム名
119
+ # @return [Array]
120
+ # * item
121
+ # * alermId => アラームID
122
+ # * ownerId => オーナーID
123
+ # * name => アラーム名
124
+ # * description => 説明文
125
+ # * service => 監視対象サービス
126
+ # * serviceId => 監視対象サービスID
127
+ # * operation => 監視対象オペレーション
128
+ # * expression => 演算子
129
+ # * threshold => 閾値
130
+ # * notificationId => 通知ID
131
+ # * createAt => 作成日時
132
+ # * updateAt => 更新日時
133
+ # * status => ステータス
134
+ # * lastStatusChangeAt => 最終ステータス更新日時
135
+ def get_alerm(request)
136
+ if not request; raise ArgumentError.new(); end
137
+ if not request.has_key?('alermName'); raise ArgumentError.new(); end
138
+ if not request['alermName']; raise ArgumentError.new(); end
139
+ query = {}
140
+ return get(
141
+ 'Gs2Watch',
142
+ 'GetAlerm',
143
+ @@ENDPOINT,
144
+ '/alerm/' + request['alermName'],
145
+ query);
146
+ end
147
+
148
+ # アラームを更新
149
+ #
150
+ # @param request [Array]
151
+ # * alermName => アラーム名
152
+ # * description => 説明文
153
+ # * expression => 演算子(>=, >, <, <=)
154
+ # * threshold => 閾値
155
+ # * notificationId => 通知ID
156
+ # @return [Array]
157
+ # * item
158
+ # * alermId => アラームID
159
+ # * ownerId => オーナーID
160
+ # * name => アラーム名
161
+ # * description => 説明文
162
+ # * service => 監視対象サービス
163
+ # * serviceId => 監視対象サービスID
164
+ # * operation => 監視対象オペレーション
165
+ # * expression => 演算子
166
+ # * threshold => 閾値
167
+ # * notificationId => 通知ID
168
+ # * createAt => 作成日時
169
+ # * updateAt => 更新日時
170
+ # * status => ステータス
171
+ # * lastStatusChangeAt => 最終ステータス更新日時
172
+ def update_alerm(request)
173
+ if not request; raise ArgumentError.new(); end
174
+ if not request.has_key?('alermName'); raise ArgumentError.new(); end
175
+ if not request['alermName']; raise ArgumentError.new(); end
176
+ body = {}
177
+ if request.has_key?('description'); body['description'] = request['description']; end
178
+ if request.has_key?('expression'); body['expression'] = request['expression']; end
179
+ if request.has_key?('threshold'); body['threshold'] = request['threshold']; end
180
+ if request.has_key?('notificationId'); body['notificationId'] = request['notificationId']; end
181
+ query = {}
182
+ return put(
183
+ 'Gs2Watch',
184
+ 'UpdateAlerm',
185
+ @@ENDPOINT,
186
+ '/alerm/' + request['alermName'],
187
+ body,
188
+ query);
189
+ end
190
+
191
+ # アラームを削除
192
+ #
193
+ # @param request [Array]
194
+ # * alermName => アラーム名
195
+ def delete_alerm(request)
196
+ if not request; raise ArgumentError.new(); end
197
+ if not request.has_key?('alermName'); raise ArgumentError.new(); end
198
+ if not request['alermName']; raise ArgumentError.new(); end
199
+ query = {}
200
+ return delete(
201
+ 'Gs2Watch',
202
+ 'DeleteAlerm',
203
+ @@ENDPOINT,
204
+ '/alerm/' + request['alermName'],
205
+ query);
206
+ end
207
+
208
+ # アラームイベントリストを取得<br>
209
+ # <br>
210
+ # 過去にアラームが発生した履歴などを確認できます。<br>
211
+ #
212
+ # @param request [Array]
213
+ # * alermName => アラーム名
214
+ # @param pageToken [String] ページトークン
215
+ # @param limit [Integer] 取得件数
216
+ # @return [Array]
217
+ # * items
218
+ # [Array]
219
+ # * eventId => アラームイベントID
220
+ # * alermId => アラームID
221
+ # * type => イベントの種類
222
+ # * eventAt => イベント発生日時
223
+ # * nextPageToken => 次ページトークン
224
+ def describe_alerm_event(request, pageToken = nil, limit = nil)
225
+ if not request; raise ArgumentError.new(); end
226
+ if not request.has_key?('alermName'); raise ArgumentError.new(); end
227
+ if not request['alermName']; raise ArgumentError.new(); end
228
+ query = {}
229
+ if pageToken; query['pageToken'] = pageToken; end
230
+ if limit; query['limit'] = limit; end
231
+ return get(
232
+ 'Gs2Watch',
233
+ 'DescribeAlermEvent',
234
+ @@ENDPOINT,
235
+ '/alerm/' + request['alermName'] + '/event',
236
+ query);
237
+ end
238
+
239
+ # サービス名リストを取得<br>
240
+ # <br>
241
+ # アラームを設定する際に指定できるサービスの一覧を取得できます。<br>
242
+ #
243
+ # @return [Array] サービス名リスト
244
+ def describe_service()
245
+ query = {}
246
+ result = get(
247
+ 'Gs2Watch',
248
+ 'DescribeService',
249
+ @@ENDPOINT,
250
+ '/service',
251
+ query);
252
+ return result['items'];
253
+ end
254
+
255
+ # オペレーション名リストを取得<br>
256
+ # <br>
257
+ # アラームを設定する際に指定できるオペレーションの一覧を取得できます。<br>
258
+ #
259
+ # @param request [Array]
260
+ # * serviceName => サービス名
261
+ # @return [Array] オペレーション名リスト
262
+ def describe_operation(request)
263
+ if not request; raise ArgumentError.new(); end
264
+ if not request.has_key?('serviceName'); raise ArgumentError.new(); end
265
+ if not request['serviceName']; raise ArgumentError.new(); end
266
+ query = {}
267
+ result = get(
268
+ 'Gs2Watch',
269
+ 'DescribeOperation',
270
+ @@ENDPOINT,
271
+ '/service/' + request['serviceName'] + '/operation',
272
+ query);
273
+ return result['items'];
274
+ end
275
+
276
+ # メトリクスを取得<br>
277
+ # <br>
278
+ # 過去のサービスの利用状況を取得します。<br>
279
+ #
280
+ # @param request [Array]
281
+ # * serviceId => サービスID
282
+ # * operation => オペレーション名
283
+ # * begin => メトリクス取得開始日時(unixepoch)
284
+ # * end => メトリクス取得終了日時(unixepoch)
285
+ # * allowLongTerm => 7日以上の期間のデータを取得することを許可するか(OPTIONAL)
286
+ # * serviceId => サービスID
287
+ # @return [Array]
288
+ # * items
289
+ # [Array]
290
+ # * timestamp => タイムスタンプ(YYYY-MM-DD HH:mm:SS)
291
+ # * value => 値
292
+ def get_metric(request)
293
+ if not request; raise ArgumentError.new(); end
294
+ if not request.has_key?('serviceId'); raise ArgumentError.new(); end
295
+ if not request['serviceId']; raise ArgumentError.new(); end
296
+ if not request.has_key?('operation'); raise ArgumentError.new(); end
297
+ if not request['operation']; raise ArgumentError.new(); end
298
+ query = {}
299
+ if request.has_key?('begin'); query['begin'] = request['begin']; end
300
+ if request.has_key?('end'); query['end'] = request['end']; end
301
+ if request.has_key?('allowLongTerm'); query['allowLongTerm'] = request['allowLongTerm']; end
302
+ return get(
303
+ 'Gs2Watch',
304
+ 'GetMetric',
305
+ @@ENDPOINT,
306
+ '/metric/' + request['serviceId'] + '/' + request['operation'],
307
+ query);
308
+ end
309
+ end
310
+ end end
@@ -0,0 +1,5 @@
1
+ module Gs2
2
+ module Watch
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
data/lib/gs2-watch.rb ADDED
@@ -0,0 +1 @@
1
+ require 'gs2/watch/Client.rb'
metadata ADDED
@@ -0,0 +1,98 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gs2-ruby-sdk-watch
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Game Server Services, Inc.
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-10-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: gs2-ruby-sdk-core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.0.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.0.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.12'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.12'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ description:
56
+ email:
57
+ - contact@gs2.io
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".buildpath"
63
+ - ".gitignore"
64
+ - ".project"
65
+ - Gemfile
66
+ - README.md
67
+ - Rakefile
68
+ - bin/console
69
+ - bin/setup
70
+ - gs2-ruby-sdk-watch.gemspec
71
+ - lib/gs2-watch.rb
72
+ - lib/gs2/watch/Client.rb
73
+ - lib/gs2/watch/version.rb
74
+ homepage: https://gs2.io/
75
+ licenses:
76
+ - Apache-2.0
77
+ metadata: {}
78
+ post_install_message:
79
+ rdoc_options: []
80
+ require_paths:
81
+ - lib
82
+ required_ruby_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ requirements: []
93
+ rubyforge_project:
94
+ rubygems_version: 2.5.1
95
+ signing_key:
96
+ specification_version: 4
97
+ summary: Game Server Services GS2-Watch Client Library
98
+ test_files: []