GS2-SkillTree SDK API リファレンス

モデル

Namespace

ネームスペース

ネームスペースは一つのプロジェクトで同じサービスを異なる用途で複数利用できるようにするための仕組みです。 GS2 のサービスは基本的にネームスペースというレイヤーがあり、ネームスペースが異なれば同じサービスでもまったく別のデータ空間として取り扱われます。

そのため、各サービスの利用を開始するにあたってネームスペースを作成する必要があります。

有効化条件必須デフォルト値の制限説明
namespaceIdstring~ 1024文字ネームスペースGRN
namestring~ 32文字ネームスペース名
descriptionstring~ 1024文字説明文
transactionSettingTransactionSettingトランザクション設定
releaseScriptScriptSettingノード開放時に実行するスクリプト
restrainScriptScriptSettingノード開放状態を未解放状態に戻す時に実行するスクリプト
logSettingLogSettingログの出力設定
createdAtlong作成日時
updatedAtlong最終更新日時
revisionlong0~ 9223372036854775805リビジョン

NodeModel

ノードモデルはスキルツリーに配置するノードのモデルです。 ノードには解放に必要なコストと、ノードの解放状態を未解放状態に戻した時に返却されるコストの割合を設定できます。

有効化条件必須デフォルト値の制限説明
nodeModelIdstring~ 1024文字ノードモデルGRN
namestring~ 128文字ノードモデル名
metadatastring~ 2048文字メタデータ
releaseConsumeActionsList<ConsumeAction>[]解放に必要な消費アクションリスト
returnAcquireActionsList<AcquireAction>返却される入手アクションリスト
restrainReturnRatefloat1~ 1返却率
premiseNodeNamesList<string>解放の前提とするノードモデル名リスト

NodeModelMaster

ノードモデルはスキルツリーに配置するノードのモデルです。 ノードには解放に必要なコストと、ノードの解放状態を未解放状態に戻した時に返却されるコストの割合を設定できます。

有効化条件必須デフォルト値の制限説明
nodeModelIdstring~ 1024文字ノードモデルマスターGRN
namestring~ 128文字ノードモデル名
descriptionstring~ 1024文字説明文
metadatastring~ 2048文字メタデータ
releaseConsumeActionsList<ConsumeAction>[]解放に必要な消費アクションリスト
restrainReturnRatefloat1.0~ 1.0返却率
premiseNodeNamesList<string>解放の前提とするノードモデル名リスト
createdAtlong作成日時
updatedAtlong最終更新日時
revisionlong0~ 9223372036854775805リビジョン

Status

スキルツリーの解放状況

有効化条件必須デフォルト値の制限説明
statusIdstring~ 1024文字ステータスGRN
userIdstring~ 128文字ユーザーID
releasedNodeNamesList<string>[]解放済みのノードモデル名リスト
createdAtlong作成日時
updatedAtlong最終更新日時
revisionlong0~ 9223372036854775805リビジョン

CurrentTreeMaster

現在有効なマスターデータ

GS2ではマスターデータの管理にJSON形式のファイルを使用します。 ファイルをアップロードすることで、実際にサーバーに設定を反映することができます。

JSONファイルを作成する方法として、マネージメントコンソール上でのマスターデータエディタを提供していますが よりゲームの運営に相応しいツールを作成し、適切なフォーマットのJSONファイルを書き出すことでもサービスを利用可能です。

JSONファイルの形式についてはドキュメントを参照ください。

有効化条件必須デフォルト値の制限説明
namespaceIdstring~ 1024文字ネームスペースGRN
settingsstring~ 5242880文字マスターデータ

Config

有効化条件必須デフォルト値の制限説明
keystring~ 64文字名前
valuestring~ 51200文字

ConsumeAction

有効化条件必須デフォルト値の制限説明
actionenum []~ 128文字スタンプタスクで実行するアクションの種類
requeststring~ 1048576文字入手リクエストのJSON

AcquireAction

有効化条件必須デフォルト値の制限説明
actionenum []~ 128文字スタンプシートを使用して実行するアクションの種類
requeststring~ 1048576文字リクエストのJSON

GitHubCheckoutSetting

有効化条件必須デフォルト値の制限説明
apiKeyIdstring~ 1024文字GitHub のAPIキーGRN
repositoryNamestring~ 1024文字リポジトリ名
sourcePathstring~ 1024文字ソースコードのファイルパス
referenceTypeenum [‘commit_hash’, ‘branch’, ’tag’]~ 128文字コードの取得元
commitHashstring{referenceType} == “commit_hash”~ 1024文字コミットハッシュ
branchNamestring{referenceType} == “branch”~ 1024文字ブランチ名
tagNamestring{referenceType} == “tag”~ 1024文字タグ名

ScriptSetting

有効化条件必須デフォルト値の制限説明
triggerScriptIdstring~ 1024文字スクリプトGRN
doneTriggerTargetTypeenum [’none’, ‘gs2_script’, ‘aws’]“none”~ 128文字完了通知の通知先
doneTriggerScriptIdstring{doneTriggerTargetType} == “gs2_script”~ 1024文字スクリプトGRN
doneTriggerQueueNamespaceIdstring{doneTriggerTargetType} == “gs2_script”~ 1024文字ネームスペースGRN

TransactionSetting

有効化条件必須デフォルト値の制限説明
enableAutoRunboolfalse発行したスタンプシートをサーバーサイドで自動的に実行するか
distributorNamespaceIdstring{enableAutoRun}~ 1024文字スタンプシートの実行に使用する GS2-Distributor ネームスペース
keyIdstring!{enableAutoRun}~ 1024文字スタンプシートの署名に使用する GS2-Key の暗号鍵
queueNamespaceIdstring~ 1024文字スタンプシートの実行に使用する GS2-JobQueue のネームスペース

LogSetting

有効化条件必須デフォルト値の制限説明
loggingNamespaceIdstring~ 1024文字ネームスペースGRN

メソッド

describeNamespaces

ネームスペースの一覧を取得

Request

有効化条件必須デフォルト値の制限説明
pageTokenstring~ 1024文字データの取得を開始する位置を指定するトークン
limitint301 ~ 1000データの取得件数

Result

説明
itemsList<Namespace>ネームスペースのリスト
nextPageTokenstringリストの続きを取得するためのページトークン

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.DescribeNamespaces(
    &skill_tree.DescribeNamespacesRequest {
        PageToken: nil,
        Limit: nil,
    }
)
if err != nil {
    panic("error occurred")
}
items := result.Items
nextPageToken := result.NextPageToken
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\DescribeNamespacesRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->describeNamespaces(
        (new DescribeNamespacesRequest())
            ->withPageToken(null)
            ->withLimit(null)
    );
    $items = $result->getItems();
    $nextPageToken = $result->getNextPageToken();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.DescribeNamespacesRequest;
import io.gs2.skillTree.result.DescribeNamespacesResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    DescribeNamespacesResult result = client.describeNamespaces(
        new DescribeNamespacesRequest()
            .withPageToken(null)
            .withLimit(null)
    );
    List<Namespace> items = result.getItems();
    String nextPageToken = result.getNextPageToken();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.DescribeNamespacesRequest;
using Gs2.Gs2SkillTree.Result.DescribeNamespacesResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.DescribeNamespacesResult> asyncResult = null;
yield return client.DescribeNamespaces(
    new Gs2.Gs2SkillTree.Request.DescribeNamespacesRequest()
        .WithPageToken(null)
        .WithLimit(null),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var items = result.Items;
var nextPageToken = result.NextPageToken;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.describeNamespaces(
        new Gs2SkillTree.DescribeNamespacesRequest()
            .withPageToken(null)
            .withLimit(null)
    );
    const items = result.getItems();
    const nextPageToken = result.getNextPageToken();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.describe_namespaces(
        skill_tree.DescribeNamespacesRequest()
            .with_page_token(None)
            .with_limit(None)
    )
    items = result.items
    next_page_token = result.next_page_token
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.describe_namespaces({
    pageToken=nil,
    limit=nil,
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
items = result.items;
nextPageToken = result.nextPageToken;

createNamespace

ネームスペースを新規作成

Request

有効化条件必須デフォルト値の制限説明
namestring~ 32文字ネームスペース名
descriptionstring~ 1024文字説明文
transactionSettingTransactionSettingトランザクション設定
releaseScriptScriptSettingノード開放時に実行するスクリプト
restrainScriptScriptSettingノード開放状態を未解放状態に戻す時に実行するスクリプト
logSettingLogSettingログの出力設定

Result

説明
itemNamespace作成したネームスペース

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.CreateNamespace(
    &skill_tree.CreateNamespaceRequest {
        Name: pointy.String("namespace1"),
        Description: nil,
        TransactionSetting: &skillTree.TransactionSetting{
            EnableAutoRun: pointy.Bool(false),
            QueueNamespaceId: pointy.String("grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001"),
            KeyId: pointy.String("grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001"),
        },
        ReleaseScript: nil,
        RestrainScript: nil,
        LogSetting: &skillTree.LogSetting{
            LoggingNamespaceId: pointy.String("grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1"),
        },
    }
)
if err != nil {
    panic("error occurred")
}
item := result.Item
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\CreateNamespaceRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->createNamespace(
        (new CreateNamespaceRequest())
            ->withName(self::namespace1)
            ->withDescription(null)
            ->withTransactionSetting((new \Gs2\SkillTree\Model\TransactionSetting())
                ->withEnableAutoRun(False)
                ->withQueueNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001")
                ->withKeyId("grn:gs2:ap-northeast-1:YourOwnerId:key:\namespace1:key:key-0001"))
            ->withReleaseScript(null)
            ->withRestrainScript(null)
            ->withLogSetting((new \Gs2\SkillTree\Model\LogSetting())
                ->withLoggingNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:log:\namespace1"))
    );
    $item = $result->getItem();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.CreateNamespaceRequest;
import io.gs2.skillTree.result.CreateNamespaceResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    CreateNamespaceResult result = client.createNamespace(
        new CreateNamespaceRequest()
            .withName("namespace1")
            .withDescription(null)
            .withTransactionSetting(new io.gs2.skillTree.model.TransactionSetting()
                .withEnableAutoRun(false)
                .withQueueNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001")
                .withKeyId("grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001"))
            .withReleaseScript(null)
            .withRestrainScript(null)
            .withLogSetting(new io.gs2.skillTree.model.LogSetting()
                .withLoggingNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1"))
    );
    Namespace item = result.getItem();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.CreateNamespaceRequest;
using Gs2.Gs2SkillTree.Result.CreateNamespaceResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.CreateNamespaceResult> asyncResult = null;
yield return client.CreateNamespace(
    new Gs2.Gs2SkillTree.Request.CreateNamespaceRequest()
        .WithName("namespace1")
        .WithDescription(null)
        .WithTransactionSetting(new Gs2.Gs2SkillTree.Model.TransactionSetting()
            .WithEnableAutoRun(false)
            .WithQueueNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001")
            .WithKeyId("grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001"))
        .WithReleaseScript(null)
        .WithRestrainScript(null)
        .WithLogSetting(new Gs2.Gs2SkillTree.Model.LogSetting()
            .WithLoggingNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1")),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.createNamespace(
        new Gs2SkillTree.CreateNamespaceRequest()
            .withName("namespace1")
            .withDescription(null)
            .withTransactionSetting(new Gs2SkillTree.model.TransactionSetting()
                .withEnableAutoRun(false)
                .withQueueNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001")
                .withKeyId("grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001"))
            .withReleaseScript(null)
            .withRestrainScript(null)
            .withLogSetting(new Gs2SkillTree.model.LogSetting()
                .withLoggingNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1"))
    );
    const item = result.getItem();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.create_namespace(
        skill_tree.CreateNamespaceRequest()
            .with_name(self.hash1)
            .with_description(None)
            .with_transaction_setting(
                skill_tree.TransactionSetting()
                    .with_enable_auto_run(False)
                    .with_queue_namespace_id('grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001')
                    .with_key_id('grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001'))
            .with_release_script(None)
            .with_restrain_script(None)
            .with_log_setting(
                skill_tree.LogSetting()
                    .with_logging_namespace_id('grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1'))
    )
    item = result.item
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.create_namespace({
    name='namespace1',
    description=nil,
    transactionSetting={
        enableAutoRun=false,
        queueNamespaceId='grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001',
        keyId='grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001',
    },
    releaseScript=nil,
    restrainScript=nil,
    logSetting={
        loggingNamespaceId='grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1',
    },
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
item = result.item;

getNamespaceStatus

ネームスペースの状態を取得

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名

Result

説明
statusstring

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.GetNamespaceStatus(
    &skill_tree.GetNamespaceStatusRequest {
        NamespaceName: pointy.String("namespace1"),
    }
)
if err != nil {
    panic("error occurred")
}
status := result.Status
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\GetNamespaceStatusRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->getNamespaceStatus(
        (new GetNamespaceStatusRequest())
            ->withNamespaceName(self::namespace1)
    );
    $status = $result->getStatus();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.GetNamespaceStatusRequest;
import io.gs2.skillTree.result.GetNamespaceStatusResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    GetNamespaceStatusResult result = client.getNamespaceStatus(
        new GetNamespaceStatusRequest()
            .withNamespaceName("namespace1")
    );
    String status = result.getStatus();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.GetNamespaceStatusRequest;
using Gs2.Gs2SkillTree.Result.GetNamespaceStatusResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.GetNamespaceStatusResult> asyncResult = null;
yield return client.GetNamespaceStatus(
    new Gs2.Gs2SkillTree.Request.GetNamespaceStatusRequest()
        .WithNamespaceName("namespace1"),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var status = result.Status;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.getNamespaceStatus(
        new Gs2SkillTree.GetNamespaceStatusRequest()
            .withNamespaceName("namespace1")
    );
    const status = result.getStatus();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.get_namespace_status(
        skill_tree.GetNamespaceStatusRequest()
            .with_namespace_name(self.hash1)
    )
    status = result.status
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.get_namespace_status({
    namespaceName='namespace1',
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
status = result.status;

getNamespace

ネームスペースを取得

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名

Result

説明
itemNamespaceネームスペース

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.GetNamespace(
    &skill_tree.GetNamespaceRequest {
        NamespaceName: pointy.String("namespace1"),
    }
)
if err != nil {
    panic("error occurred")
}
item := result.Item
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\GetNamespaceRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->getNamespace(
        (new GetNamespaceRequest())
            ->withNamespaceName(self::namespace1)
    );
    $item = $result->getItem();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.GetNamespaceRequest;
import io.gs2.skillTree.result.GetNamespaceResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    GetNamespaceResult result = client.getNamespace(
        new GetNamespaceRequest()
            .withNamespaceName("namespace1")
    );
    Namespace item = result.getItem();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.GetNamespaceRequest;
using Gs2.Gs2SkillTree.Result.GetNamespaceResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.GetNamespaceResult> asyncResult = null;
yield return client.GetNamespace(
    new Gs2.Gs2SkillTree.Request.GetNamespaceRequest()
        .WithNamespaceName("namespace1"),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.getNamespace(
        new Gs2SkillTree.GetNamespaceRequest()
            .withNamespaceName("namespace1")
    );
    const item = result.getItem();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.get_namespace(
        skill_tree.GetNamespaceRequest()
            .with_namespace_name(self.hash1)
    )
    item = result.item
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.get_namespace({
    namespaceName='namespace1',
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
item = result.item;

updateNamespace

ネームスペースを更新

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名
descriptionstring~ 1024文字説明文
transactionSettingTransactionSettingトランザクション設定
releaseScriptScriptSettingノード開放時に実行するスクリプト
restrainScriptScriptSettingノード開放状態を未解放状態に戻す時に実行するスクリプト
logSettingLogSettingログの出力設定

Result

説明
itemNamespace更新したネームスペース

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.UpdateNamespace(
    &skill_tree.UpdateNamespaceRequest {
        NamespaceName: pointy.String("namespace1"),
        Description: pointy.String("description1"),
        TransactionSetting: &skillTree.TransactionSetting{
            EnableAutoRun: pointy.Bool(false),
            QueueNamespaceId: pointy.String("grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001"),
            KeyId: pointy.String("grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001"),
        },
        ReleaseScript: nil,
        RestrainScript: nil,
        LogSetting: &skillTree.LogSetting{
            LoggingNamespaceId: pointy.String("grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1"),
        },
    }
)
if err != nil {
    panic("error occurred")
}
item := result.Item
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\UpdateNamespaceRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->updateNamespace(
        (new UpdateNamespaceRequest())
            ->withNamespaceName(self::namespace1)
            ->withDescription("description1")
            ->withTransactionSetting((new \Gs2\SkillTree\Model\TransactionSetting())
                ->withEnableAutoRun(False)
                ->withQueueNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001")
                ->withKeyId("grn:gs2:ap-northeast-1:YourOwnerId:key:\namespace1:key:key-0001"))
            ->withReleaseScript(null)
            ->withRestrainScript(null)
            ->withLogSetting((new \Gs2\SkillTree\Model\LogSetting())
                ->withLoggingNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:log:\namespace1"))
    );
    $item = $result->getItem();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.UpdateNamespaceRequest;
import io.gs2.skillTree.result.UpdateNamespaceResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    UpdateNamespaceResult result = client.updateNamespace(
        new UpdateNamespaceRequest()
            .withNamespaceName("namespace1")
            .withDescription("description1")
            .withTransactionSetting(new io.gs2.skillTree.model.TransactionSetting()
                .withEnableAutoRun(false)
                .withQueueNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001")
                .withKeyId("grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001"))
            .withReleaseScript(null)
            .withRestrainScript(null)
            .withLogSetting(new io.gs2.skillTree.model.LogSetting()
                .withLoggingNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1"))
    );
    Namespace item = result.getItem();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.UpdateNamespaceRequest;
using Gs2.Gs2SkillTree.Result.UpdateNamespaceResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.UpdateNamespaceResult> asyncResult = null;
yield return client.UpdateNamespace(
    new Gs2.Gs2SkillTree.Request.UpdateNamespaceRequest()
        .WithNamespaceName("namespace1")
        .WithDescription("description1")
        .WithTransactionSetting(new Gs2.Gs2SkillTree.Model.TransactionSetting()
            .WithEnableAutoRun(false)
            .WithQueueNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001")
            .WithKeyId("grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001"))
        .WithReleaseScript(null)
        .WithRestrainScript(null)
        .WithLogSetting(new Gs2.Gs2SkillTree.Model.LogSetting()
            .WithLoggingNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1")),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.updateNamespace(
        new Gs2SkillTree.UpdateNamespaceRequest()
            .withNamespaceName("namespace1")
            .withDescription("description1")
            .withTransactionSetting(new Gs2SkillTree.model.TransactionSetting()
                .withEnableAutoRun(false)
                .withQueueNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001")
                .withKeyId("grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001"))
            .withReleaseScript(null)
            .withRestrainScript(null)
            .withLogSetting(new Gs2SkillTree.model.LogSetting()
                .withLoggingNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1"))
    );
    const item = result.getItem();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.update_namespace(
        skill_tree.UpdateNamespaceRequest()
            .with_namespace_name(self.hash1)
            .with_description('description1')
            .with_transaction_setting(
                skill_tree.TransactionSetting()
                    .with_enable_auto_run(False)
                    .with_queue_namespace_id('grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001')
                    .with_key_id('grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001'))
            .with_release_script(None)
            .with_restrain_script(None)
            .with_log_setting(
                skill_tree.LogSetting()
                    .with_logging_namespace_id('grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1'))
    )
    item = result.item
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.update_namespace({
    namespaceName='namespace1',
    description='description1',
    transactionSetting={
        enableAutoRun=false,
        queueNamespaceId='grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001',
        keyId='grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001',
    },
    releaseScript=nil,
    restrainScript=nil,
    logSetting={
        loggingNamespaceId='grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1',
    },
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
item = result.item;

deleteNamespace

ネームスペースを削除

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名

Result

説明
itemNamespace削除したネームスペース

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.DeleteNamespace(
    &skill_tree.DeleteNamespaceRequest {
        NamespaceName: pointy.String("namespace1"),
    }
)
if err != nil {
    panic("error occurred")
}
item := result.Item
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\DeleteNamespaceRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->deleteNamespace(
        (new DeleteNamespaceRequest())
            ->withNamespaceName(self::namespace1)
    );
    $item = $result->getItem();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.DeleteNamespaceRequest;
import io.gs2.skillTree.result.DeleteNamespaceResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    DeleteNamespaceResult result = client.deleteNamespace(
        new DeleteNamespaceRequest()
            .withNamespaceName("namespace1")
    );
    Namespace item = result.getItem();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.DeleteNamespaceRequest;
using Gs2.Gs2SkillTree.Result.DeleteNamespaceResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.DeleteNamespaceResult> asyncResult = null;
yield return client.DeleteNamespace(
    new Gs2.Gs2SkillTree.Request.DeleteNamespaceRequest()
        .WithNamespaceName("namespace1"),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.deleteNamespace(
        new Gs2SkillTree.DeleteNamespaceRequest()
            .withNamespaceName("namespace1")
    );
    const item = result.getItem();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.delete_namespace(
        skill_tree.DeleteNamespaceRequest()
            .with_namespace_name(self.hash1)
    )
    item = result.item
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.delete_namespace({
    namespaceName='namespace1',
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
item = result.item;

describeNodeModels

ノードモデルの一覧を取得

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名

Result

説明
itemsList<NodeModel>ノードモデルのリスト

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.DescribeNodeModels(
    &skill_tree.DescribeNodeModelsRequest {
        NamespaceName: pointy.String("namespace2"),
    }
)
if err != nil {
    panic("error occurred")
}
items := result.Items
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\DescribeNodeModelsRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->describeNodeModels(
        (new DescribeNodeModelsRequest())
            ->withNamespaceName(self::namespace2)
    );
    $items = $result->getItems();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.DescribeNodeModelsRequest;
import io.gs2.skillTree.result.DescribeNodeModelsResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    DescribeNodeModelsResult result = client.describeNodeModels(
        new DescribeNodeModelsRequest()
            .withNamespaceName("namespace2")
    );
    List<NodeModel> items = result.getItems();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.DescribeNodeModelsRequest;
using Gs2.Gs2SkillTree.Result.DescribeNodeModelsResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.DescribeNodeModelsResult> asyncResult = null;
yield return client.DescribeNodeModels(
    new Gs2.Gs2SkillTree.Request.DescribeNodeModelsRequest()
        .WithNamespaceName("namespace2"),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var items = result.Items;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.describeNodeModels(
        new Gs2SkillTree.DescribeNodeModelsRequest()
            .withNamespaceName("namespace2")
    );
    const items = result.getItems();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.describe_node_models(
        skill_tree.DescribeNodeModelsRequest()
            .with_namespace_name(self.hash2)
    )
    items = result.items
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.describe_node_models({
    namespaceName='namespace2',
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
items = result.items;

getNodeModel

ノードモデルを取得

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名
nodeModelNamestring~ 128文字ノードモデル名

Result

説明
itemNodeModelノードモデル

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.GetNodeModel(
    &skill_tree.GetNodeModelRequest {
        NamespaceName: pointy.String("namespace2"),
        NodeModelName: pointy.String("status-0001"),
    }
)
if err != nil {
    panic("error occurred")
}
item := result.Item
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\GetNodeModelRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->getNodeModel(
        (new GetNodeModelRequest())
            ->withNamespaceName(self::namespace2)
            ->withNodeModelName("status-0001")
    );
    $item = $result->getItem();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.GetNodeModelRequest;
import io.gs2.skillTree.result.GetNodeModelResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    GetNodeModelResult result = client.getNodeModel(
        new GetNodeModelRequest()
            .withNamespaceName("namespace2")
            .withNodeModelName("status-0001")
    );
    NodeModel item = result.getItem();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.GetNodeModelRequest;
using Gs2.Gs2SkillTree.Result.GetNodeModelResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.GetNodeModelResult> asyncResult = null;
yield return client.GetNodeModel(
    new Gs2.Gs2SkillTree.Request.GetNodeModelRequest()
        .WithNamespaceName("namespace2")
        .WithNodeModelName("status-0001"),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.getNodeModel(
        new Gs2SkillTree.GetNodeModelRequest()
            .withNamespaceName("namespace2")
            .withNodeModelName("status-0001")
    );
    const item = result.getItem();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.get_node_model(
        skill_tree.GetNodeModelRequest()
            .with_namespace_name(self.hash2)
            .with_node_model_name('status-0001')
    )
    item = result.item
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.get_node_model({
    namespaceName='namespace2',
    nodeModelName='status-0001',
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
item = result.item;

describeNodeModelMasters

ノードモデルマスターの一覧を取得

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名
pageTokenstring~ 1024文字データの取得を開始する位置を指定するトークン
limitint301 ~ 1000データの取得件数

Result

説明
itemsList<NodeModelMaster>ノードモデルマスターのリスト
nextPageTokenstringリストの続きを取得するためのページトークン

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.DescribeNodeModelMasters(
    &skill_tree.DescribeNodeModelMastersRequest {
        NamespaceName: pointy.String("namespace1"),
        PageToken: nil,
        Limit: nil,
    }
)
if err != nil {
    panic("error occurred")
}
items := result.Items
nextPageToken := result.NextPageToken
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\DescribeNodeModelMastersRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->describeNodeModelMasters(
        (new DescribeNodeModelMastersRequest())
            ->withNamespaceName(self::namespace1)
            ->withPageToken(null)
            ->withLimit(null)
    );
    $items = $result->getItems();
    $nextPageToken = $result->getNextPageToken();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.DescribeNodeModelMastersRequest;
import io.gs2.skillTree.result.DescribeNodeModelMastersResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    DescribeNodeModelMastersResult result = client.describeNodeModelMasters(
        new DescribeNodeModelMastersRequest()
            .withNamespaceName("namespace1")
            .withPageToken(null)
            .withLimit(null)
    );
    List<NodeModelMaster> items = result.getItems();
    String nextPageToken = result.getNextPageToken();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.DescribeNodeModelMastersRequest;
using Gs2.Gs2SkillTree.Result.DescribeNodeModelMastersResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.DescribeNodeModelMastersResult> asyncResult = null;
yield return client.DescribeNodeModelMasters(
    new Gs2.Gs2SkillTree.Request.DescribeNodeModelMastersRequest()
        .WithNamespaceName("namespace1")
        .WithPageToken(null)
        .WithLimit(null),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var items = result.Items;
var nextPageToken = result.NextPageToken;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.describeNodeModelMasters(
        new Gs2SkillTree.DescribeNodeModelMastersRequest()
            .withNamespaceName("namespace1")
            .withPageToken(null)
            .withLimit(null)
    );
    const items = result.getItems();
    const nextPageToken = result.getNextPageToken();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.describe_node_model_masters(
        skill_tree.DescribeNodeModelMastersRequest()
            .with_namespace_name(self.hash1)
            .with_page_token(None)
            .with_limit(None)
    )
    items = result.items
    next_page_token = result.next_page_token
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.describe_node_model_masters({
    namespaceName='namespace1',
    pageToken=nil,
    limit=nil,
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
items = result.items;
nextPageToken = result.nextPageToken;

createNodeModelMaster

ノードモデルマスターを新規作成

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名
namestring~ 128文字ノードモデル名
descriptionstring~ 1024文字説明文
metadatastring~ 2048文字メタデータ
releaseConsumeActionsList<ConsumeAction>[]解放に必要な消費アクションリスト
restrainReturnRatefloat1.0~ 1.0返却率
premiseNodeNamesList<string>解放の前提とするノードモデル名リスト

Result

説明
itemNodeModelMaster作成したノードモデルマスター

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.CreateNodeModelMaster(
    &skill_tree.CreateNodeModelMasterRequest {
        NamespaceName: pointy.String("namespace1"),
        Name: pointy.String("node-0001"),
        Description: nil,
        Metadata: pointy.String("NODE-0001"),
        ReleaseConsumeActions: []skillTree.ConsumeAction{
            skillTree.ConsumeAction{
                Action: pointy.String("Gs2Inventory:ConsumeItemSetByUserId"),
                Request: pointy.String("{\"namespaceName\": \"namespace1\", \"inventoryName\": \"item\", \"itemName\": \"potion\", \"userId\": \"#{userId}\", \"consumeCount\": 10}"),
            },
        },
        RestrainReturnRate: pointy.Float32(1.0),
        PremiseNodeNames: []*string{},
    }
)
if err != nil {
    panic("error occurred")
}
item := result.Item
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\CreateNodeModelMasterRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->createNodeModelMaster(
        (new CreateNodeModelMasterRequest())
            ->withNamespaceName(self::namespace1)
            ->withName("node-0001")
            ->withDescription(null)
            ->withMetadata("NODE-0001")
            ->withReleaseConsumeActions([    (new \Gs2\SkillTree\Model\ConsumeAction())
                ->withAction("Gs2Inventory:ConsumeItemSetByUserId")
                ->withRequest("{\"namespaceName\": \"\namespace1\", \"inventoryName\": \"item\", \"itemName\": \"potion\", \"userId\": \"#{userId}\", \"consumeCount\": 10}"),
            ])
            ->withRestrainReturnRate(1.0)
            ->withPremiseNodeNames([])
    );
    $item = $result->getItem();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.CreateNodeModelMasterRequest;
import io.gs2.skillTree.result.CreateNodeModelMasterResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    CreateNodeModelMasterResult result = client.createNodeModelMaster(
        new CreateNodeModelMasterRequest()
            .withNamespaceName("namespace1")
            .withName("node-0001")
            .withDescription(null)
            .withMetadata("NODE-0001")
            .withReleaseConsumeActions(Arrays.asList(
                new io.gs2.skillTree.model.ConsumeAction()
                    .withAction("Gs2Inventory:ConsumeItemSetByUserId")
                    .withRequest("{\"namespaceName\": \"namespace1\", \"inventoryName\": \"item\", \"itemName\": \"potion\", \"userId\": \"#{userId}\", \"consumeCount\": 10}")
            ))
            .withRestrainReturnRate(1.0f)
            .withPremiseNodeNames(new ArrayList<String>())
    );
    NodeModelMaster item = result.getItem();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.CreateNodeModelMasterRequest;
using Gs2.Gs2SkillTree.Result.CreateNodeModelMasterResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.CreateNodeModelMasterResult> asyncResult = null;
yield return client.CreateNodeModelMaster(
    new Gs2.Gs2SkillTree.Request.CreateNodeModelMasterRequest()
        .WithNamespaceName("namespace1")
        .WithName("node-0001")
        .WithDescription(null)
        .WithMetadata("NODE-0001")
        .WithReleaseConsumeActions(new Gs2.Core.Model.ConsumeAction[] {
            new Gs2.Core.Model.ConsumeAction()
                .WithAction("Gs2Inventory:ConsumeItemSetByUserId")
                .WithRequest("{\"namespaceName\": \"namespace1\", \"inventoryName\": \"item\", \"itemName\": \"potion\", \"userId\": \"#{userId}\", \"consumeCount\": 10}")
        })
        .WithRestrainReturnRate(1.0f)
        .WithPremiseNodeNames(new string[] {}),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.createNodeModelMaster(
        new Gs2SkillTree.CreateNodeModelMasterRequest()
            .withNamespaceName("namespace1")
            .withName("node-0001")
            .withDescription(null)
            .withMetadata("NODE-0001")
            .withReleaseConsumeActions([
                new Gs2SkillTree.model.ConsumeAction()
                    .withAction("Gs2Inventory:ConsumeItemSetByUserId")
                    .withRequest("{\"namespaceName\": \"namespace1\", \"inventoryName\": \"item\", \"itemName\": \"potion\", \"userId\": \"#{userId}\", \"consumeCount\": 10}")
            ])
            .withRestrainReturnRate(1.0)
            .withPremiseNodeNames([])
    );
    const item = result.getItem();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.create_node_model_master(
        skill_tree.CreateNodeModelMasterRequest()
            .with_namespace_name(self.hash1)
            .with_name('node-0001')
            .with_description(None)
            .with_metadata('NODE-0001')
            .with_release_consume_actions([    skill_tree.ConsumeAction()
                .with_action('Gs2Inventory:ConsumeItemSetByUserId')
                .with_request('{"namespaceName": "namespace1", "inventoryName": "item", "itemName": "potion", "userId": "#{userId}", "consumeCount": 10}'),
            ])
            .with_restrain_return_rate(1.0)
            .with_premise_node_names([])
    )
    item = result.item
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.create_node_model_master({
    namespaceName='namespace1',
    name='node-0001',
    description=nil,
    metadata='NODE-0001',
    releaseConsumeActions={
        {
            action='Gs2Inventory:ConsumeItemSetByUserId',
            request='{"namespaceName": "namespace1", "inventoryName": "item", "itemName": "potion", "userId": "#{userId}", "consumeCount": 10}',
        }
    },
    restrainReturnRate=1.0,
    premiseNodeNames={},
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
item = result.item;

getNodeModelMaster

ノードモデルマスターを取得

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名
nodeModelNamestring~ 128文字ノードモデル名

Result

説明
itemNodeModelMasterノードモデルマスター

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.GetNodeModelMaster(
    &skill_tree.GetNodeModelMasterRequest {
        NamespaceName: pointy.String("namespace1"),
        NodeModelName: pointy.String("node-0001"),
    }
)
if err != nil {
    panic("error occurred")
}
item := result.Item
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\GetNodeModelMasterRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->getNodeModelMaster(
        (new GetNodeModelMasterRequest())
            ->withNamespaceName(self::namespace1)
            ->withNodeModelName("node-0001")
    );
    $item = $result->getItem();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.GetNodeModelMasterRequest;
import io.gs2.skillTree.result.GetNodeModelMasterResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    GetNodeModelMasterResult result = client.getNodeModelMaster(
        new GetNodeModelMasterRequest()
            .withNamespaceName("namespace1")
            .withNodeModelName("node-0001")
    );
    NodeModelMaster item = result.getItem();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.GetNodeModelMasterRequest;
using Gs2.Gs2SkillTree.Result.GetNodeModelMasterResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.GetNodeModelMasterResult> asyncResult = null;
yield return client.GetNodeModelMaster(
    new Gs2.Gs2SkillTree.Request.GetNodeModelMasterRequest()
        .WithNamespaceName("namespace1")
        .WithNodeModelName("node-0001"),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.getNodeModelMaster(
        new Gs2SkillTree.GetNodeModelMasterRequest()
            .withNamespaceName("namespace1")
            .withNodeModelName("node-0001")
    );
    const item = result.getItem();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.get_node_model_master(
        skill_tree.GetNodeModelMasterRequest()
            .with_namespace_name(self.hash1)
            .with_node_model_name('node-0001')
    )
    item = result.item
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.get_node_model_master({
    namespaceName='namespace1',
    nodeModelName='node-0001',
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
item = result.item;

updateNodeModelMaster

ノードモデルマスターを更新

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名
nodeModelNamestring~ 128文字ノードモデル名
descriptionstring~ 1024文字説明文
metadatastring~ 2048文字メタデータ
releaseConsumeActionsList<ConsumeAction>[]解放に必要な消費アクションリスト
restrainReturnRatefloat1.0~ 1.0返却率
premiseNodeNamesList<string>解放の前提とするノードモデル名リスト

Result

説明
itemNodeModelMaster更新したノードモデルマスター

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.UpdateNodeModelMaster(
    &skill_tree.UpdateNodeModelMasterRequest {
        NamespaceName: pointy.String("namespace1"),
        NodeModelName: pointy.String("node-0001"),
        Description: pointy.String("description1"),
        Metadata: pointy.String("NODE-0001"),
        ReleaseConsumeActions: []skillTree.ConsumeAction{
            skillTree.ConsumeAction{
                Action: pointy.String("Gs2Inventory:ConsumeItemSetByUserId"),
                Request: pointy.String("{\"namespaceName\": \"namespace1\", \"inventoryName\": \"item\", \"itemName\": \"potion\", \"userId\": \"#{userId}\", \"consumeCount\": 20}"),
            },
        },
        RestrainReturnRate: pointy.Float32(0.9),
        PremiseNodeNames: nil,
    }
)
if err != nil {
    panic("error occurred")
}
item := result.Item
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\UpdateNodeModelMasterRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->updateNodeModelMaster(
        (new UpdateNodeModelMasterRequest())
            ->withNamespaceName(self::namespace1)
            ->withNodeModelName("node-0001")
            ->withDescription("description1")
            ->withMetadata("NODE-0001")
            ->withReleaseConsumeActions([    (new \Gs2\SkillTree\Model\ConsumeAction())
                ->withAction("Gs2Inventory:ConsumeItemSetByUserId")
                ->withRequest("{\"namespaceName\": \"\namespace1\", \"inventoryName\": \"item\", \"itemName\": \"potion\", \"userId\": \"#{userId}\", \"consumeCount\": 20}"),
            ])
            ->withRestrainReturnRate(0.9)
            ->withPremiseNodeNames(null)
    );
    $item = $result->getItem();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.UpdateNodeModelMasterRequest;
import io.gs2.skillTree.result.UpdateNodeModelMasterResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    UpdateNodeModelMasterResult result = client.updateNodeModelMaster(
        new UpdateNodeModelMasterRequest()
            .withNamespaceName("namespace1")
            .withNodeModelName("node-0001")
            .withDescription("description1")
            .withMetadata("NODE-0001")
            .withReleaseConsumeActions(Arrays.asList(
                new io.gs2.skillTree.model.ConsumeAction()
                    .withAction("Gs2Inventory:ConsumeItemSetByUserId")
                    .withRequest("{\"namespaceName\": \"namespace1\", \"inventoryName\": \"item\", \"itemName\": \"potion\", \"userId\": \"#{userId}\", \"consumeCount\": 20}")
            ))
            .withRestrainReturnRate(0.9f)
            .withPremiseNodeNames(null)
    );
    NodeModelMaster item = result.getItem();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.UpdateNodeModelMasterRequest;
using Gs2.Gs2SkillTree.Result.UpdateNodeModelMasterResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.UpdateNodeModelMasterResult> asyncResult = null;
yield return client.UpdateNodeModelMaster(
    new Gs2.Gs2SkillTree.Request.UpdateNodeModelMasterRequest()
        .WithNamespaceName("namespace1")
        .WithNodeModelName("node-0001")
        .WithDescription("description1")
        .WithMetadata("NODE-0001")
        .WithReleaseConsumeActions(new Gs2.Core.Model.ConsumeAction[] {
            new Gs2.Core.Model.ConsumeAction()
                .WithAction("Gs2Inventory:ConsumeItemSetByUserId")
                .WithRequest("{\"namespaceName\": \"namespace1\", \"inventoryName\": \"item\", \"itemName\": \"potion\", \"userId\": \"#{userId}\", \"consumeCount\": 20}")
        })
        .WithRestrainReturnRate(0.9f)
        .WithPremiseNodeNames(null),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.updateNodeModelMaster(
        new Gs2SkillTree.UpdateNodeModelMasterRequest()
            .withNamespaceName("namespace1")
            .withNodeModelName("node-0001")
            .withDescription("description1")
            .withMetadata("NODE-0001")
            .withReleaseConsumeActions([
                new Gs2SkillTree.model.ConsumeAction()
                    .withAction("Gs2Inventory:ConsumeItemSetByUserId")
                    .withRequest("{\"namespaceName\": \"namespace1\", \"inventoryName\": \"item\", \"itemName\": \"potion\", \"userId\": \"#{userId}\", \"consumeCount\": 20}")
            ])
            .withRestrainReturnRate(0.9)
            .withPremiseNodeNames(null)
    );
    const item = result.getItem();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.update_node_model_master(
        skill_tree.UpdateNodeModelMasterRequest()
            .with_namespace_name(self.hash1)
            .with_node_model_name('node-0001')
            .with_description('description1')
            .with_metadata('NODE-0001')
            .with_release_consume_actions([    skill_tree.ConsumeAction()
                .with_action('Gs2Inventory:ConsumeItemSetByUserId')
                .with_request('{"namespaceName": "namespace1", "inventoryName": "item", "itemName": "potion", "userId": "#{userId}", "consumeCount": 20}'),
            ])
            .with_restrain_return_rate(0.9)
            .with_premise_node_names(None)
    )
    item = result.item
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.update_node_model_master({
    namespaceName='namespace1',
    nodeModelName='node-0001',
    description='description1',
    metadata='NODE-0001',
    releaseConsumeActions={
        {
            action='Gs2Inventory:ConsumeItemSetByUserId',
            request='{"namespaceName": "namespace1", "inventoryName": "item", "itemName": "potion", "userId": "#{userId}", "consumeCount": 20}',
        }
    },
    restrainReturnRate=0.9,
    premiseNodeNames=nil,
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
item = result.item;

deleteNodeModelMaster

ノードモデルマスターを削除

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名
nodeModelNamestring~ 128文字ノードモデル名

Result

説明
itemNodeModelMaster削除したノードモデルマスター

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.DeleteNodeModelMaster(
    &skill_tree.DeleteNodeModelMasterRequest {
        NamespaceName: pointy.String("namespace1"),
        NodeModelName: pointy.String("node-0001"),
    }
)
if err != nil {
    panic("error occurred")
}
item := result.Item
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\DeleteNodeModelMasterRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->deleteNodeModelMaster(
        (new DeleteNodeModelMasterRequest())
            ->withNamespaceName(self::namespace1)
            ->withNodeModelName("node-0001")
    );
    $item = $result->getItem();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.DeleteNodeModelMasterRequest;
import io.gs2.skillTree.result.DeleteNodeModelMasterResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    DeleteNodeModelMasterResult result = client.deleteNodeModelMaster(
        new DeleteNodeModelMasterRequest()
            .withNamespaceName("namespace1")
            .withNodeModelName("node-0001")
    );
    NodeModelMaster item = result.getItem();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.DeleteNodeModelMasterRequest;
using Gs2.Gs2SkillTree.Result.DeleteNodeModelMasterResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.DeleteNodeModelMasterResult> asyncResult = null;
yield return client.DeleteNodeModelMaster(
    new Gs2.Gs2SkillTree.Request.DeleteNodeModelMasterRequest()
        .WithNamespaceName("namespace1")
        .WithNodeModelName("node-0001"),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.deleteNodeModelMaster(
        new Gs2SkillTree.DeleteNodeModelMasterRequest()
            .withNamespaceName("namespace1")
            .withNodeModelName("node-0001")
    );
    const item = result.getItem();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.delete_node_model_master(
        skill_tree.DeleteNodeModelMasterRequest()
            .with_namespace_name(self.hash1)
            .with_node_model_name('node-0001')
    )
    item = result.item
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.delete_node_model_master({
    namespaceName='namespace1',
    nodeModelName='node-0001',
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
item = result.item;

markReleaseByUserId

ユーザIDを指定してノードを解放状態を記録

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名
userIdstring~ 128文字ユーザーID
nodeModelNamesList<string>ノードモデル名のリスト

Result

説明
itemStatusステータス

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.MarkReleaseByUserId(
    &skill_tree.MarkReleaseByUserIdRequest {
        NamespaceName: pointy.String("namespace1"),
        UserId: pointy.String("user-0001"),
        NodeModelNames: []*string{
            pointy.String("node-0001"),
        },
    }
)
if err != nil {
    panic("error occurred")
}
item := result.Item
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\MarkReleaseByUserIdRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->markReleaseByUserId(
        (new MarkReleaseByUserIdRequest())
            ->withNamespaceName(self::namespace1)
            ->withUserId("user-0001")
            ->withNodeModelNames([    "node-0001",
            ])
    );
    $item = $result->getItem();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.MarkReleaseByUserIdRequest;
import io.gs2.skillTree.result.MarkReleaseByUserIdResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    MarkReleaseByUserIdResult result = client.markReleaseByUserId(
        new MarkReleaseByUserIdRequest()
            .withNamespaceName("namespace1")
            .withUserId("user-0001")
            .withNodeModelNames(Arrays.asList(
                "node-0001"
            ))
    );
    Status item = result.getItem();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.MarkReleaseByUserIdRequest;
using Gs2.Gs2SkillTree.Result.MarkReleaseByUserIdResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.MarkReleaseByUserIdResult> asyncResult = null;
yield return client.MarkReleaseByUserId(
    new Gs2.Gs2SkillTree.Request.MarkReleaseByUserIdRequest()
        .WithNamespaceName("namespace1")
        .WithUserId("user-0001")
        .WithNodeModelNames(new string[] {
            "node-0001"
        }),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.markReleaseByUserId(
        new Gs2SkillTree.MarkReleaseByUserIdRequest()
            .withNamespaceName("namespace1")
            .withUserId("user-0001")
            .withNodeModelNames([
                "node-0001"
            ])
    );
    const item = result.getItem();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.mark_release_by_user_id(
        skill_tree.MarkReleaseByUserIdRequest()
            .with_namespace_name(self.hash1)
            .with_user_id('user-0001')
            .with_node_model_names([    'node-0001',
            ])
    )
    item = result.item
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.mark_release_by_user_id({
    namespaceName='namespace1',
    userId='user-0001',
    nodeModelNames={
        'node-0001'
    },
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
item = result.item;

release

ユーザIDを指定してノードを解放

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名
accessTokenstring~ 128文字ユーザーID
nodeModelNamesList<string>ノードモデル名のリスト
configList<Config>[]スタンプシートの変数に適用する設定値

Result

説明
itemStatusステータス
transactionIdstring発行されたスタンプシートのトランザクションID
stampSheetstring解放処理の実行に使用するスタンプシート
stampSheetEncryptionKeyIdstringスタンプシートの署名計算に使用した暗号鍵GRN
autoRunStampSheetbool?スタンプシートの自動実行が有効か

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.Release(
    &skill_tree.ReleaseRequest {
        NamespaceName: pointy.String("namespace1"),
        AccessToken: pointy.String("$access_token_0001"),
        NodeModelNames: []*string{
            pointy.String("node-0001"),
        },
        Config: nil,
    }
)
if err != nil {
    panic("error occurred")
}
item := result.Item
transactionId := result.TransactionId
stampSheet := result.StampSheet
stampSheetEncryptionKeyId := result.StampSheetEncryptionKeyId
autoRunStampSheet := result.AutoRunStampSheet
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\ReleaseRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->release(
        (new ReleaseRequest())
            ->withNamespaceName(self::namespace1)
            ->withAccessToken(self::$accessToken0001)
            ->withNodeModelNames([    "node-0001",
            ])
            ->withConfig(null)
    );
    $item = $result->getItem();
    $transactionId = $result->getTransactionId();
    $stampSheet = $result->getStampSheet();
    $stampSheetEncryptionKeyId = $result->getStampSheetEncryptionKeyId();
    $autoRunStampSheet = $result->getAutoRunStampSheet();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.ReleaseRequest;
import io.gs2.skillTree.result.ReleaseResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    ReleaseResult result = client.release(
        new ReleaseRequest()
            .withNamespaceName("namespace1")
            .withAccessToken("$access_token_0001")
            .withNodeModelNames(Arrays.asList(
                "node-0001"
            ))
            .withConfig(null)
    );
    Status item = result.getItem();
    String transactionId = result.getTransactionId();
    String stampSheet = result.getStampSheet();
    String stampSheetEncryptionKeyId = result.getStampSheetEncryptionKeyId();
    boolean autoRunStampSheet = result.getAutoRunStampSheet();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.ReleaseRequest;
using Gs2.Gs2SkillTree.Result.ReleaseResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.ReleaseResult> asyncResult = null;
yield return client.Release(
    new Gs2.Gs2SkillTree.Request.ReleaseRequest()
        .WithNamespaceName("namespace1")
        .WithAccessToken("$access_token_0001")
        .WithNodeModelNames(new string[] {
            "node-0001"
        })
        .WithConfig(null),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;
var transactionId = result.TransactionId;
var stampSheet = result.StampSheet;
var stampSheetEncryptionKeyId = result.StampSheetEncryptionKeyId;
var autoRunStampSheet = result.AutoRunStampSheet;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.release(
        new Gs2SkillTree.ReleaseRequest()
            .withNamespaceName("namespace1")
            .withAccessToken("$access_token_0001")
            .withNodeModelNames([
                "node-0001"
            ])
            .withConfig(null)
    );
    const item = result.getItem();
    const transactionId = result.getTransactionId();
    const stampSheet = result.getStampSheet();
    const stampSheetEncryptionKeyId = result.getStampSheetEncryptionKeyId();
    const autoRunStampSheet = result.getAutoRunStampSheet();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.release(
        skill_tree.ReleaseRequest()
            .with_namespace_name(self.hash1)
            .with_access_token(self.access_token_0001)
            .with_node_model_names([    'node-0001',
            ])
            .with_config(None)
    )
    item = result.item
    transaction_id = result.transaction_id
    stamp_sheet = result.stamp_sheet
    stamp_sheet_encryption_key_id = result.stamp_sheet_encryption_key_id
    auto_run_stamp_sheet = result.auto_run_stamp_sheet
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.release({
    namespaceName='namespace1',
    accessToken='$access_token_0001',
    nodeModelNames={
        'node-0001'
    },
    config=nil,
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
item = result.item;
transactionId = result.transactionId;
stampSheet = result.stampSheet;
stampSheetEncryptionKeyId = result.stampSheetEncryptionKeyId;
autoRunStampSheet = result.autoRunStampSheet;

releaseByUserId

ユーザIDを指定してノードを解放

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名
userIdstring~ 128文字ユーザーID
nodeModelNamesList<string>ノードモデル名のリスト
configList<Config>[]スタンプシートの変数に適用する設定値

Result

説明
itemStatusステータス
transactionIdstring発行されたスタンプシートのトランザクションID
stampSheetstring解放処理の実行に使用するスタンプシート
stampSheetEncryptionKeyIdstringスタンプシートの署名計算に使用した暗号鍵GRN
autoRunStampSheetbool?スタンプシートの自動実行が有効か

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.ReleaseByUserId(
    &skill_tree.ReleaseByUserIdRequest {
        NamespaceName: pointy.String("namespace1"),
        UserId: pointy.String("user-0001"),
        NodeModelNames: []*string{
            pointy.String("node-0001"),
        },
        Config: nil,
    }
)
if err != nil {
    panic("error occurred")
}
item := result.Item
transactionId := result.TransactionId
stampSheet := result.StampSheet
stampSheetEncryptionKeyId := result.StampSheetEncryptionKeyId
autoRunStampSheet := result.AutoRunStampSheet
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\ReleaseByUserIdRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->releaseByUserId(
        (new ReleaseByUserIdRequest())
            ->withNamespaceName(self::namespace1)
            ->withUserId("user-0001")
            ->withNodeModelNames([    "node-0001",
            ])
            ->withConfig(null)
    );
    $item = $result->getItem();
    $transactionId = $result->getTransactionId();
    $stampSheet = $result->getStampSheet();
    $stampSheetEncryptionKeyId = $result->getStampSheetEncryptionKeyId();
    $autoRunStampSheet = $result->getAutoRunStampSheet();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.ReleaseByUserIdRequest;
import io.gs2.skillTree.result.ReleaseByUserIdResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    ReleaseByUserIdResult result = client.releaseByUserId(
        new ReleaseByUserIdRequest()
            .withNamespaceName("namespace1")
            .withUserId("user-0001")
            .withNodeModelNames(Arrays.asList(
                "node-0001"
            ))
            .withConfig(null)
    );
    Status item = result.getItem();
    String transactionId = result.getTransactionId();
    String stampSheet = result.getStampSheet();
    String stampSheetEncryptionKeyId = result.getStampSheetEncryptionKeyId();
    boolean autoRunStampSheet = result.getAutoRunStampSheet();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.ReleaseByUserIdRequest;
using Gs2.Gs2SkillTree.Result.ReleaseByUserIdResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    Region.ApNortheast1
);
yield return session.Open();
var client = new Gs2SkillTreeRestClient(session);

AsyncResult<Gs2.Gs2SkillTree.Result.ReleaseByUserIdResult> asyncResult = null;
yield return client.ReleaseByUserId(
    new Gs2.Gs2SkillTree.Request.ReleaseByUserIdRequest()
        .WithNamespaceName("namespace1")
        .WithUserId("user-0001")
        .WithNodeModelNames(new string[] {
            "node-0001"
        })
        .WithConfig(null),
    r => asyncResult = r
);
if (asyncResult.Error != null) {
    throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;
var transactionId = result.TransactionId;
var stampSheet = result.StampSheet;
var stampSheetEncryptionKeyId = result.StampSheetEncryptionKeyId;
var autoRunStampSheet = result.AutoRunStampSheet;
import Gs2Core from '@/gs2/core';
import * as Gs2SkillTree from '@/gs2/skillTree';

const session = new Gs2Core.Gs2RestSession(
    "ap-northeast-1",
    new Gs2Core.BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
await session.connect();
const client = new Gs2SkillTree.Gs2SkillTreeRestClient(session);

try {
    const result = await client.releaseByUserId(
        new Gs2SkillTree.ReleaseByUserIdRequest()
            .withNamespaceName("namespace1")
            .withUserId("user-0001")
            .withNodeModelNames([
                "node-0001"
            ])
            .withConfig(null)
    );
    const item = result.getItem();
    const transactionId = result.getTransactionId();
    const stampSheet = result.getStampSheet();
    const stampSheetEncryptionKeyId = result.getStampSheetEncryptionKeyId();
    const autoRunStampSheet = result.getAutoRunStampSheet();
} catch (e) {
    process.exit(1);
}
from gs2 import core
from gs2 import skill_tree

session = core.Gs2RestSession(
    core.BasicGs2Credential(
        'your client id',
        'your client secret'
    ),
    "ap-northeast-1",
)
session.connect()
client = skill_tree.Gs2SkillTreeRestClient(session)

try:
    result = client.release_by_user_id(
        skill_tree.ReleaseByUserIdRequest()
            .with_namespace_name(self.hash1)
            .with_user_id('user-0001')
            .with_node_model_names([    'node-0001',
            ])
            .with_config(None)
    )
    item = result.item
    transaction_id = result.transaction_id
    stamp_sheet = result.stamp_sheet
    stamp_sheet_encryption_key_id = result.stamp_sheet_encryption_key_id
    auto_run_stamp_sheet = result.auto_run_stamp_sheet
except core.Gs2Exception as e:
    exit(1)
client = gs2('skillTree')

api_result = client.release_by_user_id({
    namespaceName='namespace1',
    userId='user-0001',
    nodeModelNames={
        'node-0001'
    },
    config=nil,
})

if(api_result.isError) then
    -- When error occurs
    fail(api_result['statusCode'], api_result['message'])
end

result = api_result.result
item = result.item;
transactionId = result.transactionId;
stampSheet = result.stampSheet;
stampSheetEncryptionKeyId = result.stampSheetEncryptionKeyId;
autoRunStampSheet = result.autoRunStampSheet;

markRestrainByUserId

ユーザIDを指定してノードの解放状態を未解放状態に戻す

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring~ 32文字ネームスペース名
userIdstring~ 128文字ユーザーID
nodeModelNamesList<string>ノードモデル名のリスト

Result

説明
itemStatusステータス

実装例

import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/skill_tree"
import "github.com/openlyinc/pointy"

session := core.Gs2RestSession{
    Credential: &core.BasicGs2Credential{
        ClientId: "your client id",
        ClientSecret: "your client secret",
    },
    Region: core.ApNortheast1,
}

if err := session.Connect(); err != nil {
    panic("error occurred")
}

client := skill_tree.Gs2SkillTreeRestClient{
    Session: &session,
}
result, err := client.MarkRestrainByUserId(
    &skill_tree.MarkRestrainByUserIdRequest {
        NamespaceName: pointy.String("namespace1"),
        UserId: pointy.String("user-0001"),
        NodeModelNames: []*string{
            pointy.String("node-0001"),
        },
    }
)
if err != nil {
    panic("error occurred")
}
item := result.Item
use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\SkillTree\Gs2SkillTreeRestClient;
use Gs2\SkillTree\Request\MarkRestrainByUserIdRequest;

$session = new Gs2RestSession(
    new BasicGs2Credential(
        "your client id",
        "your client secret"
    ),
    Region::AP_NORTHEAST_1
);

$session->open();

$client = new Gs2AccountRestClient(
    $session
);

try {
    $result = $client->markRestrainByUserId(
        (new MarkRestrainByUserIdRequest())
            ->withNamespaceName(self::namespace1)
            ->withUserId("user-0001")
            ->withNodeModelNames([    "node-0001",
            ])
    );
    $item = $result->getItem();
} catch (Gs2Exception $e) {
    exit("error occurred")
}
import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.skillTree.rest.Gs2SkillTreeRestClient;
import io.gs2.skillTree.request.MarkRestrainByUserIdRequest;
import io.gs2.skillTree.result.MarkRestrainByUserIdResult;

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
);
session.connect();
Gs2SkillTreeRestClient client = new Gs2SkillTreeRestClient(session);

try {
    MarkRestrainByUserIdResult result = client.markRestrainByUserId(
        new MarkRestrainByUserIdRequest()
            .withNamespaceName("namespace1")
            .withUserId("user-0001")
            .withNodeModelNames(Arrays.asList(
                "node-0001"
            ))
    );
    Status item = result.getItem();
} catch (Gs2Exception e) {
    System.exit(1);
}
using Gs2.Core.Model.Region;
using Gs2.Core.Model.BasicGs2Credential;
using Gs2.Core.Net.Gs2RestSession;
using Gs2.Core.Exception.Gs2Exception;
using Gs2.Core.AsyncResult;
using Gs2.Gs2SkillTree.Gs2SkillTreeRestClient;
using Gs2.Gs2SkillTree.Request.MarkRestrainByUserIdRequest;
using Gs2.Gs2SkillTree.Result.MarkRestrainByUserIdResult;

var session = new Gs2RestSession(
    new BasicGs2Credential(
        'your client id',
        'your client