gs2-ruby-sdk-identifier 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 70c3bab2ee79ef960ef92c2a626428932b628eb4
4
+ data.tar.gz: ab370ea8bfd1bd7032e252e45a80aad0de8f7fa4
5
+ SHA512:
6
+ metadata.gz: 26c8d0d4b5c01079e1081775ec93343f5d9dec9da62e4a6a7d4614e6647c30e439d500a28629ad6b676a96998300b3336be6f42f7e19d18e16b2ec841bcba670
7
+ data.tar.gz: 6d80508d5461327fa60a6304ff238ca07519edebe84661203926f9518b4e315a894ef2db9737e4ee10dacbdaa67cc65b2b4a0ecb6ca0dc634d8708a60bdf1e5f
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-identifier</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-identifier
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/identifier"
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/identifier/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "gs2-ruby-sdk-identifier"
8
+ spec.version = Gs2::Identifier::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-Identifier 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 @@
1
+ require 'gs2/identifier/Client.rb'
@@ -0,0 +1,418 @@
1
+ require 'gs2/core/AbstractClient.rb'
2
+
3
+ module Gs2 module Identifier
4
+
5
+ # GS2-Identifier クライアント
6
+ #
7
+ # @author Game Server Services, Inc.
8
+ class Client < Gs2::Core::AbstractClient
9
+
10
+ @@ENDPOINT = 'identifier'
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
+ # * userId => ユーザID
38
+ # * ownerId => オーナーID
39
+ # * name => ユーザ名
40
+ # * createAt => 作成日時
41
+ # * nextPageToken => 次ページトークン
42
+ def describe_user(pageToken = nil, limit = nil)
43
+ query = {}
44
+ if pageToken; query['pageToken'] = pageToken; end
45
+ if limit; query['limit'] = limit; end
46
+ return get(
47
+ 'Gs2Identifier',
48
+ 'DescribeUser',
49
+ @@ENDPOINT,
50
+ '/user',
51
+ query);
52
+ end
53
+
54
+ # ユーザを作成<br>
55
+ # <br>
56
+ # GS2のサービスを利用するにはユーザを作成する必要があります。<br>
57
+ # ユーザを作成後、ユーザに対して権限設定を行い、ユーザに対応したGSI(クライアントID/シークレット)を発行することでAPIが利用できるようになります。<br>
58
+ #
59
+ # @param request [Array]
60
+ # * name => ユーザ名
61
+ # @return [Array]
62
+ # * item
63
+ # * userId => ユーザID
64
+ # * ownerId => オーナーID
65
+ # * name => ユーザ名
66
+ # * createAt => 作成日時
67
+ def create_user(request)
68
+ if not request; raise ArgumentError.new(); end
69
+ body = {}
70
+ if request.has_key?('name'); body['name'] = request['name']; end
71
+ query = {}
72
+ return post(
73
+ 'Gs2Identifier',
74
+ 'CreateUser',
75
+ @@ENDPOINT,
76
+ '/user',
77
+ body,
78
+ query);
79
+ end
80
+
81
+ # ユーザを取得
82
+ #
83
+ # @param request [Array]
84
+ # * userName => ユーザ名
85
+ # @return [Array]
86
+ # * item
87
+ # * userId => ユーザID
88
+ # * ownerId => オーナーID
89
+ # * name => ユーザ名
90
+ # * createAt => 作成日時
91
+ def get_user(request)
92
+ if not request; raise ArgumentError.new(); end
93
+ if not request.has_key?('userName'); raise ArgumentError.new(); end
94
+ query = {}
95
+ return get(
96
+ 'Gs2Identifier',
97
+ 'GetUser',
98
+ @@ENDPOINT,
99
+ '/user/' + request['userName'],
100
+ query);
101
+ end
102
+
103
+ # ユーザを削除
104
+ #
105
+ # @param request [Array]
106
+ # * userName => ユーザ名
107
+ def delete_user(request)
108
+ if not request; raise ArgumentError.new(); end
109
+ if not request.has_key?('userName'); raise ArgumentError.new(); end
110
+ if not request['userName']; raise ArgumentError.new(); end
111
+ query = {}
112
+ return delete(
113
+ 'Gs2Identifier',
114
+ 'DeleteUser',
115
+ @@ENDPOINT,
116
+ '/user/' + request['userName'],
117
+ query);
118
+ end
119
+
120
+ # GSIリストを取得
121
+ #
122
+ # @param request [Array]
123
+ # * userName => ユーザ名
124
+ # @param pageToken [String] ページトークン
125
+ # @param limit [Integer] 取得件数
126
+ # @return [Array]
127
+ # * items
128
+ # [Array]
129
+ # * identifierId => GSIID
130
+ # * ownerId => オーナーID
131
+ # * clientId => クライアントID
132
+ # * createAt => 作成日時
133
+ # * nextPageToken => 次ページトークン
134
+ def describe_identifier(request, pageToken = nil, limit = nil)
135
+ if not request; raise ArgumentError.new(); end
136
+ if not request.has_key?('userName'); raise ArgumentError.new(); end
137
+ if not request['userName']; raise ArgumentError.new(); end
138
+ query = {}
139
+ if pageToken; query['pageToken'] = pageToken; end
140
+ if limit; query['limit'] = limit; end
141
+ return get(
142
+ 'Gs2Identifier',
143
+ 'DescribeIdentifier',
144
+ @@ENDPOINT,
145
+ '/user/' + request['userName'] + '/identifier',
146
+ query);
147
+ end
148
+
149
+ # GSIを作成<br>
150
+ # <br>
151
+ # GSIはSDKなどでAPIを利用する際に必要となる クライアントID/シークレット です。<br>
152
+ # AWSでいうIAMのクレデンシャルに相当します。<br>
153
+ #
154
+ # @param request [Array]
155
+ # * userName => ユーザ名
156
+ # @return [Array]
157
+ # * item
158
+ # * identifierId => GSIID
159
+ # * ownerId => オーナーID
160
+ # * clientId => クライアントID
161
+ # * clientSecret => クライアントシークレット
162
+ # * createAt => 作成日時
163
+ def create_identifier(request)
164
+ if not request; raise ArgumentError.new(); end
165
+ if not request.has_key?('userName'); raise ArgumentError.new(); end
166
+ if not request['userName']; raise ArgumentError.new(); end
167
+ body = {}
168
+ query = {}
169
+ return post(
170
+ 'Gs2Identifier',
171
+ 'CreateIdentifier',
172
+ @@ENDPOINT,
173
+ '/user/' + request['userName'] + '/identifier',
174
+ body,
175
+ query);
176
+ end
177
+
178
+ # GSIを削除
179
+ #
180
+ # @param request [Array]
181
+ # * userName => ユーザ名
182
+ # * identifierId => GSI ID
183
+ def delete_identifier(request)
184
+ if not request; raise ArgumentError.new(); end
185
+ if not request.has_key?('userName'); raise ArgumentError.new(); end
186
+ if not request['userName']; raise ArgumentError.new(); end
187
+ if not request.has_key?('identifierId'); raise ArgumentError.new(); end
188
+ if not request['identifierId']; raise ArgumentError.new(); end
189
+ query = {}
190
+ return delete(
191
+ 'Gs2Identifier',
192
+ 'DeleteIdentifier',
193
+ @@ENDPOINT,
194
+ '/user/' + request['userName'] + '/identifier/' + request['identifierId'],
195
+ query);
196
+ end
197
+
198
+ # ユーザが保持しているセキュリティポリシー一覧を取得
199
+ #
200
+ # @param request [Array]
201
+ # * userName => ユーザ名
202
+ # @return [Array]
203
+ # * items
204
+ # [Array]
205
+ # * identifierId => GSIID
206
+ # * ownerId => オーナーID
207
+ # * clientId => クライアントID
208
+ # * createAt => 作成日時
209
+ def get_has_security_policy(request)
210
+ if not request; raise ArgumentError.new(); end
211
+ if not request.has_key?('userName'); raise ArgumentError.new(); end
212
+ if not request['userName']; raise ArgumentError.new(); end
213
+ query = {}
214
+ return get(
215
+ 'Gs2Identifier',
216
+ 'HasSecurityPolicy',
217
+ @@ENDPOINT,
218
+ '/user/' + request['userName'] + '/securityPolicy',
219
+ query);
220
+ end
221
+
222
+ # ユーザにセキュリティポリシーを割り当てる
223
+ #
224
+ # @param request [Array]
225
+ # * userName => ユーザ名
226
+ # * securityPolicyId => セキュリティポリシーID
227
+ def attach_security_policy(request)
228
+ if not request; raise ArgumentError.new(); end
229
+ if not request.has_key?('userName'); raise ArgumentError.new(); end
230
+ if not request['userName']; raise ArgumentError.new(); end
231
+ body = {}
232
+ if request.has_key?('securityPolicyId'); body['securityPolicyId'] = request['securityPolicyId']; end
233
+ query = {}
234
+ return put(
235
+ 'Gs2Identifier',
236
+ 'AttachSecurityPolicy',
237
+ @@ENDPOINT,
238
+ '/user/' + request['userName'] + '/securityPolicy',
239
+ body);
240
+ end
241
+
242
+ # ユーザに割り当てられたセキュリティポリシーを解除
243
+ #
244
+ # @param request [Array]
245
+ # * userName => ユーザ名
246
+ # * securityPolicyId => セキュリティポリシーID
247
+ def detach_security_policy(request)
248
+ if not request; raise ArgumentError.new(); end
249
+ if not request.has_key?('userName'); raise ArgumentError.new(); end
250
+ if not request['userName']; raise ArgumentError.new(); end
251
+ if not request.has_key?('securityPolicyId'); raise ArgumentError.new(); end
252
+ if not request['securityPolicyId']; raise ArgumentError.new(); end
253
+ query = {}
254
+ return delete(
255
+ 'Gs2Identifier',
256
+ 'DetachSecurityPolicy',
257
+ @@ENDPOINT,
258
+ '/user/' + request['userName'] + '/securityPolicy/' + request['securityPolicyId'],
259
+ query);
260
+ end
261
+
262
+ # セキュリティポリシーリストを取得
263
+ #
264
+ # @param pageToken [String] ページトークン
265
+ # @param limit [Integer] 取得件数
266
+ # @return [Array]
267
+ # * items
268
+ # [Array]
269
+ # * securityPolicyId => セキュリティポリシーID
270
+ # * ownerId => オーナーID
271
+ # * name => セキュリティポリシー名
272
+ # * policy => ポリシー
273
+ # * createAt => 作成日時
274
+ # * updateAt => 更新日時
275
+ # * nextPageToken => 次ページトークン
276
+ def describe_security_policy(pageToken = nil, limit = nil)
277
+ query = {}
278
+ if pageToken; query['pageToken'] = pageToken; end
279
+ if limit; query['limit'] = limit; end
280
+ return get(
281
+ 'Gs2Identifier',
282
+ 'DescribeSecurityPolicy',
283
+ @@ENDPOINT,
284
+ '/securityPolicy',
285
+ query);
286
+ end
287
+
288
+ # 共用セキュリティポリシーリストを取得
289
+ #
290
+ # @param pageToken [String] ページトークン
291
+ # @param limit [Integer] 取得件数
292
+ # @return [Array]
293
+ # * items
294
+ # [Array]
295
+ # * securityPolicyId => セキュリティポリシーID
296
+ # * ownerId => オーナーID
297
+ # * name => セキュリティポリシー名
298
+ # * policy => ポリシー
299
+ # * createAt => 作成日時
300
+ # * updateAt => 更新日時
301
+ # * nextPageToken => 次ページトークン
302
+ def describe_common_security_policy(pageToken = nil, limit = nil)
303
+ query = {}
304
+ if pageToken; query['pageToken'] = pageToken; end
305
+ if limit; query['limit'] = limit; end
306
+ return get(
307
+ 'Gs2Identifier',
308
+ 'DescribeSecurityPolicy',
309
+ @@ENDPOINT,
310
+ '/securityPolicy/common',
311
+ query);
312
+ end
313
+
314
+ # セキュリティポリシーを作成<br>
315
+ # <br>
316
+ # セキュリティポリシーはユーザの権限を定義したものです。<br>
317
+ # AWSのIAMポリシーに似せて設計されていますが、いくつかAWSのIAMポリシーと比較して劣る点があります。<br>
318
+ # 2016/9 時点では以下の様な点が IAMポリシー とは異なります。<br>
319
+ #
320
+ # * リソースに対するアクセス制御はできません。
321
+ # * アクションのワイルドカードは最後に1箇所のみ利用できます。
322
+ #
323
+ # @param array request
324
+ # * name => セキュリティポリシー名
325
+ # * policy => ポリシー
326
+ # @return array
327
+ # * item
328
+ # * securityPolicyId => セキュリティポリシーID
329
+ # * ownerId => オーナーID
330
+ # * name => セキュリティポリシー名
331
+ # * policy => ポリシー
332
+ # * createAt => 作成日時
333
+ # * updateAt => 更新日時
334
+ def create_security_policy(request)
335
+ if not request; raise ArgumentError.new(); end
336
+ body = {}
337
+ if request.has_key?('name'); body['name'] = request['name']; end
338
+ if request.has_key?('policy'); body['policy'] = request['policy']; end
339
+ query = {}
340
+ return post(
341
+ 'Gs2Identifier',
342
+ 'CreateSecurityPolicy',
343
+ @@ENDPOINT,
344
+ '/securityPolicy',
345
+ body,
346
+ query);
347
+ end
348
+
349
+ # セキュリティポリシーを取得
350
+ #
351
+ # @param request [Array]
352
+ # * securityPolicyName => セキュリティポリシー名
353
+ # @return [Array]
354
+ # * item
355
+ # * securityPolicyId => セキュリティポリシーID
356
+ # * ownerId => オーナーID
357
+ # * name => セキュリティポリシー名
358
+ # * policy => ポリシー
359
+ # * createAt => 作成日時
360
+ # * updateAt => 更新日時
361
+ def get_security_policy(request)
362
+ if not request; raise ArgumentError.new(); end
363
+ if not request.has_key?('securityPolicyName'); raise ArgumentError.new(); end
364
+ query = {}
365
+ return get(
366
+ 'Gs2Identifier',
367
+ 'GetSecurityPolicy',
368
+ @@ENDPOINT,
369
+ '/securityPolicy/' + request['securityPolicyName'],
370
+ query);
371
+ end
372
+
373
+ # セキュリティポリシーを更新
374
+ #
375
+ # @param request [Array]
376
+ # * securityPolicyName => セキュリティポリシー名
377
+ # @return [Array]
378
+ # * item
379
+ # * securityPolicyId => セキュリティポリシーID
380
+ # * ownerId => オーナーID
381
+ # * name => セキュリティポリシー名
382
+ # * policy => ポリシー
383
+ # * createAt => 作成日時
384
+ # * updateAt => 更新日時
385
+ def update_security_policy(request)
386
+ if not request; raise ArgumentError.new(); end
387
+ if not request.has_key?('securityPolicyName'); raise ArgumentError.new(); end
388
+ if not request['securityPolicyName']; raise ArgumentError.new(); end
389
+ body = {}
390
+ if request.has_key?('policy'); body['policy'] = request['policy']; end
391
+ query = {}
392
+ return put(
393
+ 'Gs2Identifier',
394
+ 'UpdateSecurityPolicy',
395
+ @@ENDPOINT,
396
+ '/securityPolicy/' + request['securityPolicyName'],
397
+ body,
398
+ query);
399
+ end
400
+
401
+ # セキュリティポリシーを削除
402
+ #
403
+ # @param request [Array]
404
+ # * securityPolicyName => セキュリティポリシー名
405
+ def delete_security_policy(request)
406
+ if not request; raise ArgumentError.new(); end
407
+ if not request.has_key?('securityPolicyName'); raise ArgumentError.new(); end
408
+ if not request['securityPolicyName']; raise ArgumentError.new(); end
409
+ query = {}
410
+ return delete(
411
+ 'Gs2Identifier',
412
+ 'DeleteSecurityPolicy',
413
+ @@ENDPOINT,
414
+ '/securityPolicy/' + request['securityPolicyName'],
415
+ query);
416
+ end
417
+ end
418
+ end end
@@ -0,0 +1,5 @@
1
+ module Gs2
2
+ module Identifier
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,98 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gs2-ruby-sdk-identifier
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-identifier.gemspec
71
+ - lib/gs2-identifier.rb
72
+ - lib/gs2/identifier/Client.rb
73
+ - lib/gs2/identifier/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-Identifier Client Library
98
+ test_files: []