class Gs2::Identifier::Client
GS2-Identifier クライアント
@author Game Server Services, Inc.
Public Class Methods
デバッグ用。通常利用する必要はありません。
# File lib/gs2/identifier/Client.rb, line 22 def self.ENDPOINT(v = nil) if v @@ENDPOINT = v else return @@ENDPOINT end end
コンストラクタ
@param region [String] リージョン名 @param gs2_client_id [String] GSIクライアントID @param gs2_client_secret [String] GSIクライアントシークレット
# File lib/gs2/identifier/Client.rb, line 17 def initialize(region, gs2_client_id, gs2_client_secret) super(region, gs2_client_id, gs2_client_secret) end
Public Instance Methods
ユーザにセキュリティポリシーを割り当てる
@param request [Array]
* userName => ユーザ名 * securityPolicyId => セキュリティポリシーID
# File lib/gs2/identifier/Client.rb, line 227 def attach_security_policy(request) if not request; raise ArgumentError.new(); end if not request.has_key?('userName'); raise ArgumentError.new(); end if not request['userName']; raise ArgumentError.new(); end body = {} if request.has_key?('securityPolicyId'); body['securityPolicyId'] = request['securityPolicyId']; end query = {} return put( 'Gs2Identifier', 'AttachSecurityPolicy', @@ENDPOINT, '/user/' + request['userName'] + '/securityPolicy', body); end
GSIを作成
GSIはSDKなどでAPIを利用する際に必要となる クライアントID/シークレット です。
AWSでいうIAMのクレデンシャルに相当します。
@param request [Array]
* userName => ユーザ名
@return [Array]
* item * identifierId => GSIID * ownerId => オーナーID * clientId => クライアントID * clientSecret => クライアントシークレット * createAt => 作成日時
# File lib/gs2/identifier/Client.rb, line 163 def create_identifier(request) if not request; raise ArgumentError.new(); end if not request.has_key?('userName'); raise ArgumentError.new(); end if not request['userName']; raise ArgumentError.new(); end body = {} query = {} return post( 'Gs2Identifier', 'CreateIdentifier', @@ENDPOINT, '/user/' + request['userName'] + '/identifier', body, query); end
セキュリティポリシーを作成
セキュリティポリシーはユーザの権限を定義したものです。
AWSのIAMポリシーに似せて設計されていますが、いくつかAWSのIAMポリシーと比較して劣る点があります。
2016/9 時点では以下の様な点が IAMポリシー とは異なります。
-
リソースに対するアクセス制御はできません。
-
アクションのワイルドカードは最後に1箇所のみ利用できます。
@param array request
* name => セキュリティポリシー名 * policy => ポリシー
@return array
* item * securityPolicyId => セキュリティポリシーID * ownerId => オーナーID * name => セキュリティポリシー名 * policy => ポリシー * createAt => 作成日時 * updateAt => 更新日時
# File lib/gs2/identifier/Client.rb, line 334 def create_security_policy(request) if not request; raise ArgumentError.new(); end body = {} if request.has_key?('name'); body['name'] = request['name']; end if request.has_key?('policy'); body['policy'] = request['policy']; end query = {} return post( 'Gs2Identifier', 'CreateSecurityPolicy', @@ENDPOINT, '/securityPolicy', body, query); end
ユーザを作成
GS2のサービスを利用するにはユーザを作成する必要があります。
ユーザを作成後、ユーザに対して権限設定を行い、ユーザに対応したGSI(クライアントID/シークレット)を発行することでAPIが利用できるようになります。
@param request [Array]
* name => ユーザ名
@return [Array]
* item * userId => ユーザID * ownerId => オーナーID * name => ユーザ名 * createAt => 作成日時
# File lib/gs2/identifier/Client.rb, line 67 def create_user(request) if not request; raise ArgumentError.new(); end body = {} if request.has_key?('name'); body['name'] = request['name']; end query = {} return post( 'Gs2Identifier', 'CreateUser', @@ENDPOINT, '/user', body, query); end
GSIを削除
@param request [Array]
* userName => ユーザ名 * identifierId => GSI ID
# File lib/gs2/identifier/Client.rb, line 183 def delete_identifier(request) if not request; raise ArgumentError.new(); end if not request.has_key?('userName'); raise ArgumentError.new(); end if not request['userName']; raise ArgumentError.new(); end if not request.has_key?('identifierId'); raise ArgumentError.new(); end if not request['identifierId']; raise ArgumentError.new(); end query = {} return delete( 'Gs2Identifier', 'DeleteIdentifier', @@ENDPOINT, '/user/' + request['userName'] + '/identifier/' + request['identifierId'], query); end
セキュリティポリシーを削除
@param request [Array]
* securityPolicyName => セキュリティポリシー名
# File lib/gs2/identifier/Client.rb, line 405 def delete_security_policy(request) if not request; raise ArgumentError.new(); end if not request.has_key?('securityPolicyName'); raise ArgumentError.new(); end if not request['securityPolicyName']; raise ArgumentError.new(); end query = {} return delete( 'Gs2Identifier', 'DeleteSecurityPolicy', @@ENDPOINT, '/securityPolicy/' + request['securityPolicyName'], query); end
ユーザを削除
@param request [Array]
* userName => ユーザ名
# File lib/gs2/identifier/Client.rb, line 107 def delete_user(request) if not request; raise ArgumentError.new(); end if not request.has_key?('userName'); raise ArgumentError.new(); end if not request['userName']; raise ArgumentError.new(); end query = {} return delete( 'Gs2Identifier', 'DeleteUser', @@ENDPOINT, '/user/' + request['userName'], query); end
共用セキュリティポリシーリストを取得
@param pageToken [String] ページトークン @param limit [Integer] 取得件数 @return [Array]
* items [Array] * securityPolicyId => セキュリティポリシーID * ownerId => オーナーID * name => セキュリティポリシー名 * policy => ポリシー * createAt => 作成日時 * updateAt => 更新日時 * nextPageToken => 次ページトークン
# File lib/gs2/identifier/Client.rb, line 302 def describe_common_security_policy(pageToken = nil, limit = nil) query = {} if pageToken; query['pageToken'] = pageToken; end if limit; query['limit'] = limit; end return get( 'Gs2Identifier', 'DescribeSecurityPolicy', @@ENDPOINT, '/securityPolicy/common', query); end
GSIリストを取得
@param request [Array]
* userName => ユーザ名
@param pageToken [String] ページトークン @param limit [Integer] 取得件数 @return [Array]
* items [Array] * identifierId => GSIID * ownerId => オーナーID * clientId => クライアントID * createAt => 作成日時 * nextPageToken => 次ページトークン
# File lib/gs2/identifier/Client.rb, line 134 def describe_identifier(request, pageToken = nil, limit = nil) if not request; raise ArgumentError.new(); end if not request.has_key?('userName'); raise ArgumentError.new(); end if not request['userName']; raise ArgumentError.new(); end query = {} if pageToken; query['pageToken'] = pageToken; end if limit; query['limit'] = limit; end return get( 'Gs2Identifier', 'DescribeIdentifier', @@ENDPOINT, '/user/' + request['userName'] + '/identifier', query); end
セキュリティポリシーリストを取得
@param pageToken [String] ページトークン @param limit [Integer] 取得件数 @return [Array]
* items [Array] * securityPolicyId => セキュリティポリシーID * ownerId => オーナーID * name => セキュリティポリシー名 * policy => ポリシー * createAt => 作成日時 * updateAt => 更新日時 * nextPageToken => 次ページトークン
# File lib/gs2/identifier/Client.rb, line 276 def describe_security_policy(pageToken = nil, limit = nil) query = {} if pageToken; query['pageToken'] = pageToken; end if limit; query['limit'] = limit; end return get( 'Gs2Identifier', 'DescribeSecurityPolicy', @@ENDPOINT, '/securityPolicy', query); end
ユーザリストを取得
@param pageToken [String] ページトークン @param limit [Integer] 取得件数 @return [Array]
* items [Array] * userId => ユーザID * ownerId => オーナーID * name => ユーザ名 * createAt => 作成日時 * nextPageToken => 次ページトークン
# File lib/gs2/identifier/Client.rb, line 42 def describe_user(pageToken = nil, limit = nil) query = {} if pageToken; query['pageToken'] = pageToken; end if limit; query['limit'] = limit; end return get( 'Gs2Identifier', 'DescribeUser', @@ENDPOINT, '/user', query); end
ユーザに割り当てられたセキュリティポリシーを解除
@param request [Array]
* userName => ユーザ名 * securityPolicyId => セキュリティポリシーID
# File lib/gs2/identifier/Client.rb, line 247 def detach_security_policy(request) if not request; raise ArgumentError.new(); end if not request.has_key?('userName'); raise ArgumentError.new(); end if not request['userName']; raise ArgumentError.new(); end if not request.has_key?('securityPolicyId'); raise ArgumentError.new(); end if not request['securityPolicyId']; raise ArgumentError.new(); end query = {} return delete( 'Gs2Identifier', 'DetachSecurityPolicy', @@ENDPOINT, '/user/' + request['userName'] + '/securityPolicy/' + request['securityPolicyId'], query); end
ユーザが保持しているセキュリティポリシー一覧を取得
@param request [Array]
* userName => ユーザ名
@return [Array]
* items [Array] * identifierId => GSIID * ownerId => オーナーID * clientId => クライアントID * createAt => 作成日時
# File lib/gs2/identifier/Client.rb, line 209 def get_has_security_policy(request) if not request; raise ArgumentError.new(); end if not request.has_key?('userName'); raise ArgumentError.new(); end if not request['userName']; raise ArgumentError.new(); end query = {} return get( 'Gs2Identifier', 'HasSecurityPolicy', @@ENDPOINT, '/user/' + request['userName'] + '/securityPolicy', query); end
セキュリティポリシーを取得
@param request [Array]
* securityPolicyName => セキュリティポリシー名
@return [Array]
* item * securityPolicyId => セキュリティポリシーID * ownerId => オーナーID * name => セキュリティポリシー名 * policy => ポリシー * createAt => 作成日時 * updateAt => 更新日時
# File lib/gs2/identifier/Client.rb, line 361 def get_security_policy(request) if not request; raise ArgumentError.new(); end if not request.has_key?('securityPolicyName'); raise ArgumentError.new(); end query = {} return get( 'Gs2Identifier', 'GetSecurityPolicy', @@ENDPOINT, '/securityPolicy/' + request['securityPolicyName'], query); end
ユーザを取得
@param request [Array]
* userName => ユーザ名
@return [Array]
* item * userId => ユーザID * ownerId => オーナーID * name => ユーザ名 * createAt => 作成日時
# File lib/gs2/identifier/Client.rb, line 91 def get_user(request) if not request; raise ArgumentError.new(); end if not request.has_key?('userName'); raise ArgumentError.new(); end query = {} return get( 'Gs2Identifier', 'GetUser', @@ENDPOINT, '/user/' + request['userName'], query); end
セキュリティポリシーを更新
@param request [Array]
* securityPolicyName => セキュリティポリシー名
@return [Array]
* item * securityPolicyId => セキュリティポリシーID * ownerId => オーナーID * name => セキュリティポリシー名 * policy => ポリシー * createAt => 作成日時 * updateAt => 更新日時
# File lib/gs2/identifier/Client.rb, line 385 def update_security_policy(request) if not request; raise ArgumentError.new(); end if not request.has_key?('securityPolicyName'); raise ArgumentError.new(); end if not request['securityPolicyName']; raise ArgumentError.new(); end body = {} if request.has_key?('policy'); body['policy'] = request['policy']; end query = {} return put( 'Gs2Identifier', 'UpdateSecurityPolicy', @@ENDPOINT, '/securityPolicy/' + request['securityPolicyName'], body, query); end