class Gs2::Identifier::Client

GS2-Identifier クライアント

@author Game Server Services, Inc.

Public Class Methods

ENDPOINT(v = nil) click to toggle source

デバッグ用。通常利用する必要はありません。

# File lib/gs2/identifier/Client.rb, line 22
def self.ENDPOINT(v = nil)
  if v
    @@ENDPOINT = v
  else
    return @@ENDPOINT
  end
end
new(region, gs2_client_id, gs2_client_secret) click to toggle source

コンストラクタ

@param region [String] リージョン名 @param gs2_client_id [String] GSIクライアントID @param gs2_client_secret [String] GSIクライアントシークレット

Calls superclass method
# 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

attach_security_policy(request) click to toggle source

ユーザにセキュリティポリシーを割り当てる

@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
create_identifier(request) click to toggle source

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
create_security_policy(request) click to toggle source

セキュリティポリシーを作成

セキュリティポリシーはユーザの権限を定義したものです。
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
create_user(request) click to toggle source

ユーザを作成

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
delete_identifier(request) click to toggle source

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
delete_security_policy(request) click to toggle source

セキュリティポリシーを削除

@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
delete_user(request) click to toggle source

ユーザを削除

@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
describe_common_security_policy(pageToken = nil, limit = nil) click to toggle source

共用セキュリティポリシーリストを取得

@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
describe_identifier(request, pageToken = nil, limit = nil) click to toggle source

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
describe_security_policy(pageToken = nil, limit = nil) click to toggle source

セキュリティポリシーリストを取得

@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
describe_user(pageToken = nil, limit = nil) click to toggle source

ユーザリストを取得

@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
detach_security_policy(request) click to toggle source

ユーザに割り当てられたセキュリティポリシーを解除

@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
get_has_security_policy(request) click to toggle source

ユーザが保持しているセキュリティポリシー一覧を取得

@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
get_security_policy(request) click to toggle source

セキュリティポリシーを取得

@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
get_user(request) click to toggle source

ユーザを取得

@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
update_security_policy(request) click to toggle source

セキュリティポリシーを更新

@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