gs2-ruby-sdk-identifier 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: 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: []