GS2-Schedule Deploy/CDK リファレンス
エンティティ
Deploy処理で操作の対象となるリソース
Namespace
ネームスペース
ネームスペースは、一つのプロジェクト内で同じサービスを異なる用途で複数利用するためのエンティティです。
GS2 の各サービスはネームスペース単位で管理されます。ネームスペースが異なれば、同じサービスでも完全に独立したデータ空間として扱われます。
そのため、各サービスの利用を開始するにあたってネームスペースを作成する必要があります。
Request
リソースの生成・更新リクエスト
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| name | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| description | string | ~ 1024文字 | 説明文 | |||
| transactionSetting | TransactionSetting | トランザクション設定 スケジュール操作時のトランザクションの処理方法を制御する設定です。 | ||||
| logSetting | LogSetting | ログ出力設定 スケジュール関連の操作ログを GS2-Log に出力するための設定。 設定すると、イベントクエリ、トリガー発動、トリガー削除などのアクションが分析や監査のために記録されます。 |
GetAttr
!GetAttrタグで取得可能なリソースの生成結果
| 型 | 説明 | |
|---|---|---|
| Item | Namespace | 作成したネームスペース |
実装例
Type: GS2::Schedule::Namespace
Properties:
Name: namespace-0001
Description: null
TransactionSetting: null
LogSetting:
LoggingNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001import (
"github.com/gs2io/gs2-golang-cdk/core"
"github.com/gs2io/gs2-golang-cdk/schedule"
)
SampleStack := core.NewStack()
schedule.NewNamespace(
&SampleStack,
"namespace-0001",
schedule.NamespaceOptions{
LogSetting: &core.LogSetting{
LoggingNamespaceId: "grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001",
},
},
)
println(SampleStack.Yaml()) // Generate Templateclass SampleStack extends \Gs2Cdk\Core\Model\Stack
{
function __construct() {
parent::__construct();
new \Gs2Cdk\Schedule\Model\Namespace_(
stack: $this,
name: "namespace-0001",
options: new \Gs2Cdk\Schedule\Model\Options\NamespaceOptions(
logSetting: new \Gs2Cdk\Core\Model\LogSetting(
loggingNamespaceId: "grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001"
)
)
);
}
}
print((new SampleStack())->yaml()); // Generate Templateclass SampleStack extends io.gs2.cdk.core.model.Stack
{
public SampleStack() {
super();
new io.gs2.cdk.schedule.model.Namespace(
this,
"namespace-0001",
new io.gs2.cdk.schedule.model.options.NamespaceOptions()
.withLogSetting(new io.gs2.cdk.core.model.LogSetting(
"grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001"
))
);
}
}
System.out.println(new SampleStack().yaml()); // Generate Templatepublic class SampleStack : Gs2Cdk.Core.Model.Stack
{
public SampleStack() {
new Gs2Cdk.Gs2Schedule.Model.Namespace(
stack: this,
name: "namespace-0001",
options: new Gs2Cdk.Gs2Schedule.Model.Options.NamespaceOptions
{
logSetting = new Gs2Cdk.Core.Model.LogSetting(
loggingNamespaceId: "grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001"
)
}
);
}
}
Debug.Log(new SampleStack().Yaml()); // Generate Templateimport core from "@/gs2cdk/core";
import schedule from "@/gs2cdk/schedule";
class SampleStack extends core.Stack
{
public constructor() {
super();
new schedule.model.Namespace(
this,
"namespace-0001",
{
logSetting: new core.LogSetting(
"grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001"
)
}
);
}
}
console.log(new SampleStack().yaml()); // Generate Templatefrom gs2_cdk import Stack, core, schedule
class SampleStack(Stack):
def __init__(self):
super().__init__()
schedule.Namespace(
stack=self,
name='namespace-0001',
options=schedule.NamespaceOptions(
log_setting=core.LogSetting(
logging_namespace_id='grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001',
),
),
)
print(SampleStack().yaml()) # Generate TemplateTransactionSetting
トランザクション設定
トランザクション設定は、トランザクションの実行方法・整合性・非同期処理・競合回避の仕組みを制御する設定です。
自動実行(AutoRun)、アトミック実行(AtomicCommit)、GS2-Distributor を利用した非同期実行、スクリプト結果の一括適用、GS2-JobQueue による入手アクションの非同期化などを組み合わせ、ゲームロジックに応じた堅牢なトランザクション管理を可能にします。
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| enableAutoRun | bool | false | 発行したトランザクションをサーバーサイドで自動的に実行するか | |||
| enableAtomicCommit | bool | {enableAutoRun} == true | false | トランザクションの実行をアトミックにコミットするか ※ enableAutoRun が true であれば 有効 | ||
| transactionUseDistributor | bool | {enableAtomicCommit} == true | false | トランザクションを非同期処理で実行する ※ enableAtomicCommit が true であれば 有効 | ||
| commitScriptResultInUseDistributor | bool | {transactionUseDistributor} == true | false | スクリプトの結果コミット処理を非同期処理で実行するか ※ transactionUseDistributor が true であれば 有効 | ||
| acquireActionUseJobQueue | bool | {enableAtomicCommit} == true | false | 入手アクションを実行する際に GS2-JobQueue を使用するか ※ enableAtomicCommit が true であれば 有効 | ||
| distributorNamespaceId | string | “grn:gs2:{region}:{ownerId}:distributor:default” | ~ 1024文字 | トランザクションの実行に使用する GS2-Distributor ネームスペース GRN | ||
| queueNamespaceId | string | “grn:gs2:{region}:{ownerId}:queue:default” | ~ 1024文字 | トランザクションの実行に使用する GS2-JobQueue のネームスペース GRN |
LogSetting
ログの出力設定
ログデータの出力設定を管理します。この型は、ログデータを書き出すために使用される GS2-Log ネームスペースの識別子(Namespace ID)を保持します。
ログネームスペースID(loggingNamespaceId)には、ログデータを収集し保存する GS2-Log のネームスペースを、GRNの形式で指定します。
この設定をすることで、設定されたネームスペース内で発生したAPIリクエスト・レスポンスのログデータが、対象の GS2-Log ネームスペース側へ出力されるようになります。
GS2-Log ではリアルタイムでログが提供され、システムの監視や分析、デバッグなどに利用できます。
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| loggingNamespaceId | string | ✓ | ~ 1024文字 | ログを出力する GS2-Log のネームスペース
GRN 「grn:gs2:」ではじまる GRN 形式のIDで指定する必要があります。 |
CurrentEventMaster
現在アクティブなイベントのマスターデータ
現在ネームスペース内で有効な、イベントの定義を記述したマスターデータです。
GS2ではマスターデータの管理にJSON形式のファイルを使用します。
ファイルをアップロードすることで、実際にサーバーに設定を反映することができます。
JSONファイルを作成する方法として、マネージメントコンソール内にマスターデータエディタを提供しています。
また、よりゲームの運営に相応しいツールを作成し、適切なフォーマットのJSONファイルを書き出すことでもサービスを利用可能です。
Note
JSONファイルの形式については GS2-Schedule マスターデータリファレンス をご参照ください。Request
リソースの生成・更新リクエスト
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||||||||
| mode | 文字列列挙型 enum { “direct”, “preUpload” } | “direct” | 更新モード
| |||||||||
| settings | string | {mode} == “direct” | ✓※ | ~ 5242880文字 | マスターデータ ※ mode が “direct” であれば必須 | |||||||
| uploadToken | string | {mode} == “preUpload” | ✓※ | ~ 1024文字 | 事前アップロードで取得したトークン アップロードしたマスターデータを適用するために使用されます。 ※ mode が “preUpload” であれば必須 |
GetAttr
!GetAttrタグで取得可能なリソースの生成結果
| 型 | 説明 | |
|---|---|---|
| Item | CurrentEventMaster | 更新された現在アクティブなイベントのマスターデータ |
実装例
Type: GS2::Schedule::CurrentEventMaster
Properties:
NamespaceName: namespace-0001
Mode: null
Settings: {
"version": "2019-03-31",
"events": [
{
"name": "event-0001",
"scheduleType": "absolute",
"repeatSetting":
{
"repeatType": "always",
"beginDayOfMonth": 1,
"endDayOfMonth": 1,
"beginHour": 0,
"endHour": 0,
"activeDays": 1,
"inactiveDays": 0
},
"metadata": "EVENT_0001",
"absoluteBegin": 10000,
"absoluteEnd": 20000
},
{
"name": "event-0002",
"scheduleType": "relative",
"repeatSetting":
{
"repeatType": "always",
"beginDayOfMonth": 1,
"endDayOfMonth": 1,
"beginHour": 0,
"endHour": 0,
"activeDays": 1,
"inactiveDays": 0
},
"metadata": "EVENT_0002",
"relativeTriggerName": "trigger-0001"
},
{
"name": "daily-0001",
"scheduleType": "absolute",
"repeatSetting":
{
"repeatType": "always",
"beginDayOfMonth": 1,
"endDayOfMonth": 1,
"beginHour": 0,
"endHour": 0,
"activeDays": 1,
"inactiveDays": 0
},
"metadata": "EVENT_0003",
"absoluteBegin": 1569369600000,
"absoluteEnd": 1569456000000
},
{
"name": "daily-0002",
"scheduleType": "absolute",
"repeatSetting":
{
"repeatType": "always",
"beginDayOfMonth": 1,
"endDayOfMonth": 1,
"beginHour": 0,
"endHour": 0,
"activeDays": 1,
"inactiveDays": 0
},
"metadata": "EVENT_0004",
"absoluteBegin": 1569369600000,
"absoluteEnd": 1569456000000
},
{
"name": "weekly-0001",
"scheduleType": "absolute",
"repeatSetting":
{
"repeatType": "always",
"beginDayOfMonth": 1,
"endDayOfMonth": 1,
"beginHour": 0,
"endHour": 0,
"activeDays": 1,
"inactiveDays": 0
},
"metadata": "EVENT_0005",
"absoluteBegin": 1569888000000,
"absoluteEnd": 1570406400000
},
{
"name": "weekly-0002",
"scheduleType": "absolute",
"repeatSetting":
{
"repeatType": "always",
"beginDayOfMonth": 1,
"endDayOfMonth": 1,
"beginHour": 0,
"endHour": 0,
"activeDays": 1,
"inactiveDays": 0
},
"metadata": "EVENT_0006",
"absoluteBegin": 1569888000000,
"absoluteEnd": 1570406400000
},
{
"name": "monthly-0001",
"scheduleType": "absolute",
"repeatSetting":
{
"repeatType": "always",
"beginDayOfMonth": 1,
"endDayOfMonth": 1,
"beginHour": 0,
"endHour": 0,
"activeDays": 1,
"inactiveDays": 0
},
"metadata": "EVENT_0007",
"absoluteBegin": 1570406400000,
"absoluteEnd": 1575158400000
},
{
"name": "monthly-0002",
"scheduleType": "absolute",
"repeatSetting":
{
"repeatType": "always",
"beginDayOfMonth": 1,
"endDayOfMonth": 1,
"beginHour": 0,
"endHour": 0,
"activeDays": 1,
"inactiveDays": 0
},
"metadata": "EVENT_0008",
"absoluteBegin": 1570406400000,
"absoluteEnd": 1575158400000
}
]
}
UploadToken: nullimport (
"github.com/gs2io/gs2-golang-cdk/core"
"github.com/gs2io/gs2-golang-cdk/schedule"
"github.com/openlyinc/pointy"
)
SampleStack := core.NewStack()
schedule.NewNamespace(
&SampleStack,
"namespace-0001",
schedule.NamespaceOptions{},
).MasterData(
[]schedule.Event{
schedule.NewEvent(
"event-0001",
schedule.EventScheduleTypeAbsolute,
schedule.NewRepeatSetting(
schedule.RepeatSettingRepeatTypeAlways,
schedule.RepeatSettingOptions{
BeginDayOfMonth: pointy.Int32(1),
EndDayOfMonth: pointy.Int32(1),
BeginHour: pointy.Int32(0),
EndHour: pointy.Int32(0),
ActiveDays: pointy.Int32(1),
InactiveDays: pointy.Int32(0),
},
),
schedule.EventOptions{
Metadata: pointy.String("EVENT_0001"),
AbsoluteBegin: pointy.Int64(10000),
AbsoluteEnd: pointy.Int64(20000),
},
),
schedule.NewEvent(
"event-0002",
schedule.EventScheduleTypeRelative,
schedule.NewRepeatSetting(
schedule.RepeatSettingRepeatTypeAlways,
schedule.RepeatSettingOptions{
BeginDayOfMonth: pointy.Int32(1),
EndDayOfMonth: pointy.Int32(1),
BeginHour: pointy.Int32(0),
EndHour: pointy.Int32(0),
ActiveDays: pointy.Int32(1),
InactiveDays: pointy.Int32(0),
},
),
schedule.EventOptions{
Metadata: pointy.String("EVENT_0002"),
RelativeTriggerName: pointy.String("trigger-0001"),
},
),
schedule.NewEvent(
"daily-0001",
schedule.EventScheduleTypeAbsolute,
schedule.NewRepeatSetting(
schedule.RepeatSettingRepeatTypeAlways,
schedule.RepeatSettingOptions{
BeginDayOfMonth: pointy.Int32(1),
EndDayOfMonth: pointy.Int32(1),
BeginHour: pointy.Int32(0),
EndHour: pointy.Int32(0),
ActiveDays: pointy.Int32(1),
InactiveDays: pointy.Int32(0),
},
),
schedule.EventOptions{
Metadata: pointy.String("EVENT_0003"),
AbsoluteBegin: pointy.Int64(1569369600000),
AbsoluteEnd: pointy.Int64(1569456000000),
},
),
schedule.NewEvent(
"daily-0002",
schedule.EventScheduleTypeAbsolute,
schedule.NewRepeatSetting(
schedule.RepeatSettingRepeatTypeAlways,
schedule.RepeatSettingOptions{
BeginDayOfMonth: pointy.Int32(1),
EndDayOfMonth: pointy.Int32(1),
BeginHour: pointy.Int32(0),
EndHour: pointy.Int32(0),
ActiveDays: pointy.Int32(1),
InactiveDays: pointy.Int32(0),
},
),
schedule.EventOptions{
Metadata: pointy.String("EVENT_0004"),
AbsoluteBegin: pointy.Int64(1569369600000),
AbsoluteEnd: pointy.Int64(1569456000000),
},
),
schedule.NewEvent(
"weekly-0001",
schedule.EventScheduleTypeAbsolute,
schedule.NewRepeatSetting(
schedule.RepeatSettingRepeatTypeAlways,
schedule.RepeatSettingOptions{
BeginDayOfMonth: pointy.Int32(1),
EndDayOfMonth: pointy.Int32(1),
BeginHour: pointy.Int32(0),
EndHour: pointy.Int32(0),
ActiveDays: pointy.Int32(1),
InactiveDays: pointy.Int32(0),
},
),
schedule.EventOptions{
Metadata: pointy.String("EVENT_0005"),
AbsoluteBegin: pointy.Int64(1569888000000),
AbsoluteEnd: pointy.Int64(1570406400000),
},
),
schedule.NewEvent(
"weekly-0002",
schedule.EventScheduleTypeAbsolute,
schedule.NewRepeatSetting(
schedule.RepeatSettingRepeatTypeAlways,
schedule.RepeatSettingOptions{
BeginDayOfMonth: pointy.Int32(1),
EndDayOfMonth: pointy.Int32(1),
BeginHour: pointy.Int32(0),
EndHour: pointy.Int32(0),
ActiveDays: pointy.Int32(1),
InactiveDays: pointy.Int32(0),
},
),
schedule.EventOptions{
Metadata: pointy.String("EVENT_0006"),
AbsoluteBegin: pointy.Int64(1569888000000),
AbsoluteEnd: pointy.Int64(1570406400000),
},
),
schedule.NewEvent(
"monthly-0001",
schedule.EventScheduleTypeAbsolute,
schedule.NewRepeatSetting(
schedule.RepeatSettingRepeatTypeAlways,
schedule.RepeatSettingOptions{
BeginDayOfMonth: pointy.Int32(1),
EndDayOfMonth: pointy.Int32(1),
BeginHour: pointy.Int32(0),
EndHour: pointy.Int32(0),
ActiveDays: pointy.Int32(1),
InactiveDays: pointy.Int32(0),
},
),
schedule.EventOptions{
Metadata: pointy.String("EVENT_0007"),
AbsoluteBegin: pointy.Int64(1570406400000),
AbsoluteEnd: pointy.Int64(1575158400000),
},
),
schedule.NewEvent(
"monthly-0002",
schedule.EventScheduleTypeAbsolute,
schedule.NewRepeatSetting(
schedule.RepeatSettingRepeatTypeAlways,
schedule.RepeatSettingOptions{
BeginDayOfMonth: pointy.Int32(1),
EndDayOfMonth: pointy.Int32(1),
BeginHour: pointy.Int32(0),
EndHour: pointy.Int32(0),
ActiveDays: pointy.Int32(1),
InactiveDays: pointy.Int32(0),
},
),
schedule.EventOptions{
Metadata: pointy.String("EVENT_0008"),
AbsoluteBegin: pointy.Int64(1570406400000),
AbsoluteEnd: pointy.Int64(1575158400000),
},
),
},
)
println(SampleStack.Yaml()) // Generate Templateclass SampleStack extends \Gs2Cdk\Core\Model\Stack
{
function __construct() {
parent::__construct();
(new \Gs2Cdk\Schedule\Model\Namespace_(
stack: $this,
name: "namespace-0001"
))->masterData(
[
new \Gs2Cdk\Schedule\Model\Event(
name:"event-0001",
scheduleType: \Gs2Cdk\Schedule\Model\Enums\EventScheduleType::ABSOLUTE,
repeatSetting:new \Gs2Cdk\Schedule\Model\RepeatSetting(
repeatType: Gs2Cdk\Schedule\Model\Enums\RepeatSettingRepeatType::ALWAYS,
options: new \Gs2Cdk\Schedule\Model\Options\RepeatSettingOptions(
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0,
)
),
options: new \Gs2Cdk\Schedule\Model\Options\EventOptions(
metadata:"EVENT_0001",
absoluteBegin:10000,
absoluteEnd:20000
)
),
new \Gs2Cdk\Schedule\Model\Event(
name:"event-0002",
scheduleType: \Gs2Cdk\Schedule\Model\Enums\EventScheduleType::RELATIVE,
repeatSetting:new \Gs2Cdk\Schedule\Model\RepeatSetting(
repeatType: Gs2Cdk\Schedule\Model\Enums\RepeatSettingRepeatType::ALWAYS,
options: new \Gs2Cdk\Schedule\Model\Options\RepeatSettingOptions(
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0,
)
),
options: new \Gs2Cdk\Schedule\Model\Options\EventOptions(
metadata:"EVENT_0002",
relativeTriggerName:"trigger-0001"
)
),
new \Gs2Cdk\Schedule\Model\Event(
name:"daily-0001",
scheduleType: \Gs2Cdk\Schedule\Model\Enums\EventScheduleType::ABSOLUTE,
repeatSetting:new \Gs2Cdk\Schedule\Model\RepeatSetting(
repeatType: Gs2Cdk\Schedule\Model\Enums\RepeatSettingRepeatType::ALWAYS,
options: new \Gs2Cdk\Schedule\Model\Options\RepeatSettingOptions(
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0,
)
),
options: new \Gs2Cdk\Schedule\Model\Options\EventOptions(
metadata:"EVENT_0003",
absoluteBegin:1569369600000,
absoluteEnd:1569456000000
)
),
new \Gs2Cdk\Schedule\Model\Event(
name:"daily-0002",
scheduleType: \Gs2Cdk\Schedule\Model\Enums\EventScheduleType::ABSOLUTE,
repeatSetting:new \Gs2Cdk\Schedule\Model\RepeatSetting(
repeatType: Gs2Cdk\Schedule\Model\Enums\RepeatSettingRepeatType::ALWAYS,
options: new \Gs2Cdk\Schedule\Model\Options\RepeatSettingOptions(
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0,
)
),
options: new \Gs2Cdk\Schedule\Model\Options\EventOptions(
metadata:"EVENT_0004",
absoluteBegin:1569369600000,
absoluteEnd:1569456000000
)
),
new \Gs2Cdk\Schedule\Model\Event(
name:"weekly-0001",
scheduleType: \Gs2Cdk\Schedule\Model\Enums\EventScheduleType::ABSOLUTE,
repeatSetting:new \Gs2Cdk\Schedule\Model\RepeatSetting(
repeatType: Gs2Cdk\Schedule\Model\Enums\RepeatSettingRepeatType::ALWAYS,
options: new \Gs2Cdk\Schedule\Model\Options\RepeatSettingOptions(
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0,
)
),
options: new \Gs2Cdk\Schedule\Model\Options\EventOptions(
metadata:"EVENT_0005",
absoluteBegin:1569888000000,
absoluteEnd:1570406400000
)
),
new \Gs2Cdk\Schedule\Model\Event(
name:"weekly-0002",
scheduleType: \Gs2Cdk\Schedule\Model\Enums\EventScheduleType::ABSOLUTE,
repeatSetting:new \Gs2Cdk\Schedule\Model\RepeatSetting(
repeatType: Gs2Cdk\Schedule\Model\Enums\RepeatSettingRepeatType::ALWAYS,
options: new \Gs2Cdk\Schedule\Model\Options\RepeatSettingOptions(
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0,
)
),
options: new \Gs2Cdk\Schedule\Model\Options\EventOptions(
metadata:"EVENT_0006",
absoluteBegin:1569888000000,
absoluteEnd:1570406400000
)
),
new \Gs2Cdk\Schedule\Model\Event(
name:"monthly-0001",
scheduleType: \Gs2Cdk\Schedule\Model\Enums\EventScheduleType::ABSOLUTE,
repeatSetting:new \Gs2Cdk\Schedule\Model\RepeatSetting(
repeatType: Gs2Cdk\Schedule\Model\Enums\RepeatSettingRepeatType::ALWAYS,
options: new \Gs2Cdk\Schedule\Model\Options\RepeatSettingOptions(
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0,
)
),
options: new \Gs2Cdk\Schedule\Model\Options\EventOptions(
metadata:"EVENT_0007",
absoluteBegin:1570406400000,
absoluteEnd:1575158400000
)
),
new \Gs2Cdk\Schedule\Model\Event(
name:"monthly-0002",
scheduleType: \Gs2Cdk\Schedule\Model\Enums\EventScheduleType::ABSOLUTE,
repeatSetting:new \Gs2Cdk\Schedule\Model\RepeatSetting(
repeatType: Gs2Cdk\Schedule\Model\Enums\RepeatSettingRepeatType::ALWAYS,
options: new \Gs2Cdk\Schedule\Model\Options\RepeatSettingOptions(
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0,
)
),
options: new \Gs2Cdk\Schedule\Model\Options\EventOptions(
metadata:"EVENT_0008",
absoluteBegin:1570406400000,
absoluteEnd:1575158400000
)
)
]
);
}
}
print((new SampleStack())->yaml()); // Generate Templateclass SampleStack extends io.gs2.cdk.core.model.Stack
{
public SampleStack() {
super();
new io.gs2.cdk.schedule.model.Namespace(
this,
"namespace-0001"
).masterData(
Arrays.asList(
new io.gs2.cdk.schedule.model.Event(
"event-0001",
io.gs2.cdk.schedule.model.enums.EventScheduleType.ABSOLUTE,
new io.gs2.cdk.schedule.model.RepeatSetting(
io.gs2.cdk.schedule.model.enums.RepeatSettingRepeatType.ALWAYS,
new io.gs2.cdk.schedule.model.options.RepeatSettingOptions()
.withBeginDayOfMonth(1)
.withEndDayOfMonth(1)
.withBeginHour(0)
.withEndHour(0)
.withActiveDays(1)
.withInactiveDays(0)
),
new io.gs2.cdk.schedule.model.options.EventOptions()
.withMetadata("EVENT_0001")
.withAbsoluteBegin(10000L)
.withAbsoluteEnd(20000L)
),
new io.gs2.cdk.schedule.model.Event(
"event-0002",
io.gs2.cdk.schedule.model.enums.EventScheduleType.RELATIVE,
new io.gs2.cdk.schedule.model.RepeatSetting(
io.gs2.cdk.schedule.model.enums.RepeatSettingRepeatType.ALWAYS,
new io.gs2.cdk.schedule.model.options.RepeatSettingOptions()
.withBeginDayOfMonth(1)
.withEndDayOfMonth(1)
.withBeginHour(0)
.withEndHour(0)
.withActiveDays(1)
.withInactiveDays(0)
),
new io.gs2.cdk.schedule.model.options.EventOptions()
.withMetadata("EVENT_0002")
.withRelativeTriggerName("trigger-0001")
),
new io.gs2.cdk.schedule.model.Event(
"daily-0001",
io.gs2.cdk.schedule.model.enums.EventScheduleType.ABSOLUTE,
new io.gs2.cdk.schedule.model.RepeatSetting(
io.gs2.cdk.schedule.model.enums.RepeatSettingRepeatType.ALWAYS,
new io.gs2.cdk.schedule.model.options.RepeatSettingOptions()
.withBeginDayOfMonth(1)
.withEndDayOfMonth(1)
.withBeginHour(0)
.withEndHour(0)
.withActiveDays(1)
.withInactiveDays(0)
),
new io.gs2.cdk.schedule.model.options.EventOptions()
.withMetadata("EVENT_0003")
.withAbsoluteBegin(1569369600000L)
.withAbsoluteEnd(1569456000000L)
),
new io.gs2.cdk.schedule.model.Event(
"daily-0002",
io.gs2.cdk.schedule.model.enums.EventScheduleType.ABSOLUTE,
new io.gs2.cdk.schedule.model.RepeatSetting(
io.gs2.cdk.schedule.model.enums.RepeatSettingRepeatType.ALWAYS,
new io.gs2.cdk.schedule.model.options.RepeatSettingOptions()
.withBeginDayOfMonth(1)
.withEndDayOfMonth(1)
.withBeginHour(0)
.withEndHour(0)
.withActiveDays(1)
.withInactiveDays(0)
),
new io.gs2.cdk.schedule.model.options.EventOptions()
.withMetadata("EVENT_0004")
.withAbsoluteBegin(1569369600000L)
.withAbsoluteEnd(1569456000000L)
),
new io.gs2.cdk.schedule.model.Event(
"weekly-0001",
io.gs2.cdk.schedule.model.enums.EventScheduleType.ABSOLUTE,
new io.gs2.cdk.schedule.model.RepeatSetting(
io.gs2.cdk.schedule.model.enums.RepeatSettingRepeatType.ALWAYS,
new io.gs2.cdk.schedule.model.options.RepeatSettingOptions()
.withBeginDayOfMonth(1)
.withEndDayOfMonth(1)
.withBeginHour(0)
.withEndHour(0)
.withActiveDays(1)
.withInactiveDays(0)
),
new io.gs2.cdk.schedule.model.options.EventOptions()
.withMetadata("EVENT_0005")
.withAbsoluteBegin(1569888000000L)
.withAbsoluteEnd(1570406400000L)
),
new io.gs2.cdk.schedule.model.Event(
"weekly-0002",
io.gs2.cdk.schedule.model.enums.EventScheduleType.ABSOLUTE,
new io.gs2.cdk.schedule.model.RepeatSetting(
io.gs2.cdk.schedule.model.enums.RepeatSettingRepeatType.ALWAYS,
new io.gs2.cdk.schedule.model.options.RepeatSettingOptions()
.withBeginDayOfMonth(1)
.withEndDayOfMonth(1)
.withBeginHour(0)
.withEndHour(0)
.withActiveDays(1)
.withInactiveDays(0)
),
new io.gs2.cdk.schedule.model.options.EventOptions()
.withMetadata("EVENT_0006")
.withAbsoluteBegin(1569888000000L)
.withAbsoluteEnd(1570406400000L)
),
new io.gs2.cdk.schedule.model.Event(
"monthly-0001",
io.gs2.cdk.schedule.model.enums.EventScheduleType.ABSOLUTE,
new io.gs2.cdk.schedule.model.RepeatSetting(
io.gs2.cdk.schedule.model.enums.RepeatSettingRepeatType.ALWAYS,
new io.gs2.cdk.schedule.model.options.RepeatSettingOptions()
.withBeginDayOfMonth(1)
.withEndDayOfMonth(1)
.withBeginHour(0)
.withEndHour(0)
.withActiveDays(1)
.withInactiveDays(0)
),
new io.gs2.cdk.schedule.model.options.EventOptions()
.withMetadata("EVENT_0007")
.withAbsoluteBegin(1570406400000L)
.withAbsoluteEnd(1575158400000L)
),
new io.gs2.cdk.schedule.model.Event(
"monthly-0002",
io.gs2.cdk.schedule.model.enums.EventScheduleType.ABSOLUTE,
new io.gs2.cdk.schedule.model.RepeatSetting(
io.gs2.cdk.schedule.model.enums.RepeatSettingRepeatType.ALWAYS,
new io.gs2.cdk.schedule.model.options.RepeatSettingOptions()
.withBeginDayOfMonth(1)
.withEndDayOfMonth(1)
.withBeginHour(0)
.withEndHour(0)
.withActiveDays(1)
.withInactiveDays(0)
),
new io.gs2.cdk.schedule.model.options.EventOptions()
.withMetadata("EVENT_0008")
.withAbsoluteBegin(1570406400000L)
.withAbsoluteEnd(1575158400000L)
)
)
);
}
}
System.out.println(new SampleStack().yaml()); // Generate Templatepublic class SampleStack : Gs2Cdk.Core.Model.Stack
{
public SampleStack() {
new Gs2Cdk.Gs2Schedule.Model.Namespace(
stack: this,
name: "namespace-0001"
).MasterData(
new Gs2Cdk.Gs2Schedule.Model.Event[] {
new Gs2Cdk.Gs2Schedule.Model.Event(
name: "event-0001",
scheduleType: Gs2Cdk.Gs2Schedule.Model.Enums.EventScheduleType.Absolute,
repeatSetting: new Gs2Cdk.Gs2Schedule.Model.RepeatSetting(
repeatType: Gs2Cdk.Gs2Schedule.Model.Enums.RepeatSettingRepeatType.Always,
options: new Gs2Cdk.Gs2Schedule.Model.Options.RepeatSettingOptions
{
beginDayOfMonth = 1,
endDayOfMonth = 1,
beginHour = 0,
endHour = 0,
activeDays = 1,
inactiveDays = 0
}
),
options: new Gs2Cdk.Gs2Schedule.Model.Options.EventOptions
{
metadata = "EVENT_0001",
absoluteBegin = 10000L,
absoluteEnd = 20000L
}
),
new Gs2Cdk.Gs2Schedule.Model.Event(
name: "event-0002",
scheduleType: Gs2Cdk.Gs2Schedule.Model.Enums.EventScheduleType.Relative,
repeatSetting: new Gs2Cdk.Gs2Schedule.Model.RepeatSetting(
repeatType: Gs2Cdk.Gs2Schedule.Model.Enums.RepeatSettingRepeatType.Always,
options: new Gs2Cdk.Gs2Schedule.Model.Options.RepeatSettingOptions
{
beginDayOfMonth = 1,
endDayOfMonth = 1,
beginHour = 0,
endHour = 0,
activeDays = 1,
inactiveDays = 0
}
),
options: new Gs2Cdk.Gs2Schedule.Model.Options.EventOptions
{
metadata = "EVENT_0002",
relativeTriggerName = "trigger-0001"
}
),
new Gs2Cdk.Gs2Schedule.Model.Event(
name: "daily-0001",
scheduleType: Gs2Cdk.Gs2Schedule.Model.Enums.EventScheduleType.Absolute,
repeatSetting: new Gs2Cdk.Gs2Schedule.Model.RepeatSetting(
repeatType: Gs2Cdk.Gs2Schedule.Model.Enums.RepeatSettingRepeatType.Always,
options: new Gs2Cdk.Gs2Schedule.Model.Options.RepeatSettingOptions
{
beginDayOfMonth = 1,
endDayOfMonth = 1,
beginHour = 0,
endHour = 0,
activeDays = 1,
inactiveDays = 0
}
),
options: new Gs2Cdk.Gs2Schedule.Model.Options.EventOptions
{
metadata = "EVENT_0003",
absoluteBegin = 1569369600000L,
absoluteEnd = 1569456000000L
}
),
new Gs2Cdk.Gs2Schedule.Model.Event(
name: "daily-0002",
scheduleType: Gs2Cdk.Gs2Schedule.Model.Enums.EventScheduleType.Absolute,
repeatSetting: new Gs2Cdk.Gs2Schedule.Model.RepeatSetting(
repeatType: Gs2Cdk.Gs2Schedule.Model.Enums.RepeatSettingRepeatType.Always,
options: new Gs2Cdk.Gs2Schedule.Model.Options.RepeatSettingOptions
{
beginDayOfMonth = 1,
endDayOfMonth = 1,
beginHour = 0,
endHour = 0,
activeDays = 1,
inactiveDays = 0
}
),
options: new Gs2Cdk.Gs2Schedule.Model.Options.EventOptions
{
metadata = "EVENT_0004",
absoluteBegin = 1569369600000L,
absoluteEnd = 1569456000000L
}
),
new Gs2Cdk.Gs2Schedule.Model.Event(
name: "weekly-0001",
scheduleType: Gs2Cdk.Gs2Schedule.Model.Enums.EventScheduleType.Absolute,
repeatSetting: new Gs2Cdk.Gs2Schedule.Model.RepeatSetting(
repeatType: Gs2Cdk.Gs2Schedule.Model.Enums.RepeatSettingRepeatType.Always,
options: new Gs2Cdk.Gs2Schedule.Model.Options.RepeatSettingOptions
{
beginDayOfMonth = 1,
endDayOfMonth = 1,
beginHour = 0,
endHour = 0,
activeDays = 1,
inactiveDays = 0
}
),
options: new Gs2Cdk.Gs2Schedule.Model.Options.EventOptions
{
metadata = "EVENT_0005",
absoluteBegin = 1569888000000L,
absoluteEnd = 1570406400000L
}
),
new Gs2Cdk.Gs2Schedule.Model.Event(
name: "weekly-0002",
scheduleType: Gs2Cdk.Gs2Schedule.Model.Enums.EventScheduleType.Absolute,
repeatSetting: new Gs2Cdk.Gs2Schedule.Model.RepeatSetting(
repeatType: Gs2Cdk.Gs2Schedule.Model.Enums.RepeatSettingRepeatType.Always,
options: new Gs2Cdk.Gs2Schedule.Model.Options.RepeatSettingOptions
{
beginDayOfMonth = 1,
endDayOfMonth = 1,
beginHour = 0,
endHour = 0,
activeDays = 1,
inactiveDays = 0
}
),
options: new Gs2Cdk.Gs2Schedule.Model.Options.EventOptions
{
metadata = "EVENT_0006",
absoluteBegin = 1569888000000L,
absoluteEnd = 1570406400000L
}
),
new Gs2Cdk.Gs2Schedule.Model.Event(
name: "monthly-0001",
scheduleType: Gs2Cdk.Gs2Schedule.Model.Enums.EventScheduleType.Absolute,
repeatSetting: new Gs2Cdk.Gs2Schedule.Model.RepeatSetting(
repeatType: Gs2Cdk.Gs2Schedule.Model.Enums.RepeatSettingRepeatType.Always,
options: new Gs2Cdk.Gs2Schedule.Model.Options.RepeatSettingOptions
{
beginDayOfMonth = 1,
endDayOfMonth = 1,
beginHour = 0,
endHour = 0,
activeDays = 1,
inactiveDays = 0
}
),
options: new Gs2Cdk.Gs2Schedule.Model.Options.EventOptions
{
metadata = "EVENT_0007",
absoluteBegin = 1570406400000L,
absoluteEnd = 1575158400000L
}
),
new Gs2Cdk.Gs2Schedule.Model.Event(
name: "monthly-0002",
scheduleType: Gs2Cdk.Gs2Schedule.Model.Enums.EventScheduleType.Absolute,
repeatSetting: new Gs2Cdk.Gs2Schedule.Model.RepeatSetting(
repeatType: Gs2Cdk.Gs2Schedule.Model.Enums.RepeatSettingRepeatType.Always,
options: new Gs2Cdk.Gs2Schedule.Model.Options.RepeatSettingOptions
{
beginDayOfMonth = 1,
endDayOfMonth = 1,
beginHour = 0,
endHour = 0,
activeDays = 1,
inactiveDays = 0
}
),
options: new Gs2Cdk.Gs2Schedule.Model.Options.EventOptions
{
metadata = "EVENT_0008",
absoluteBegin = 1570406400000L,
absoluteEnd = 1575158400000L
}
)
}
);
}
}
Debug.Log(new SampleStack().Yaml()); // Generate Templateimport core from "@/gs2cdk/core";
import schedule from "@/gs2cdk/schedule";
class SampleStack extends core.Stack
{
public constructor() {
super();
new schedule.model.Namespace(
this,
"namespace-0001",
).masterData(
[
new schedule.model.Event(
"event-0001",
schedule.model.EventScheduleType.ABSOLUTE,
new schedule.model.RepeatSetting(
schedule.model.RepeatSettingRepeatType.ALWAYS,
{
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0
}
),
{
metadata: "EVENT_0001",
absoluteBegin: 10000,
absoluteEnd: 20000
}
),
new schedule.model.Event(
"event-0002",
schedule.model.EventScheduleType.RELATIVE,
new schedule.model.RepeatSetting(
schedule.model.RepeatSettingRepeatType.ALWAYS,
{
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0
}
),
{
metadata: "EVENT_0002",
relativeTriggerName: "trigger-0001"
}
),
new schedule.model.Event(
"daily-0001",
schedule.model.EventScheduleType.ABSOLUTE,
new schedule.model.RepeatSetting(
schedule.model.RepeatSettingRepeatType.ALWAYS,
{
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0
}
),
{
metadata: "EVENT_0003",
absoluteBegin: 1569369600000,
absoluteEnd: 1569456000000
}
),
new schedule.model.Event(
"daily-0002",
schedule.model.EventScheduleType.ABSOLUTE,
new schedule.model.RepeatSetting(
schedule.model.RepeatSettingRepeatType.ALWAYS,
{
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0
}
),
{
metadata: "EVENT_0004",
absoluteBegin: 1569369600000,
absoluteEnd: 1569456000000
}
),
new schedule.model.Event(
"weekly-0001",
schedule.model.EventScheduleType.ABSOLUTE,
new schedule.model.RepeatSetting(
schedule.model.RepeatSettingRepeatType.ALWAYS,
{
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0
}
),
{
metadata: "EVENT_0005",
absoluteBegin: 1569888000000,
absoluteEnd: 1570406400000
}
),
new schedule.model.Event(
"weekly-0002",
schedule.model.EventScheduleType.ABSOLUTE,
new schedule.model.RepeatSetting(
schedule.model.RepeatSettingRepeatType.ALWAYS,
{
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0
}
),
{
metadata: "EVENT_0006",
absoluteBegin: 1569888000000,
absoluteEnd: 1570406400000
}
),
new schedule.model.Event(
"monthly-0001",
schedule.model.EventScheduleType.ABSOLUTE,
new schedule.model.RepeatSetting(
schedule.model.RepeatSettingRepeatType.ALWAYS,
{
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0
}
),
{
metadata: "EVENT_0007",
absoluteBegin: 1570406400000,
absoluteEnd: 1575158400000
}
),
new schedule.model.Event(
"monthly-0002",
schedule.model.EventScheduleType.ABSOLUTE,
new schedule.model.RepeatSetting(
schedule.model.RepeatSettingRepeatType.ALWAYS,
{
beginDayOfMonth: 1,
endDayOfMonth: 1,
beginHour: 0,
endHour: 0,
activeDays: 1,
inactiveDays: 0
}
),
{
metadata: "EVENT_0008",
absoluteBegin: 1570406400000,
absoluteEnd: 1575158400000
}
)
]
);
}
}
console.log(new SampleStack().yaml()); // Generate Templatefrom gs2_cdk import Stack, core, schedule
class SampleStack(Stack):
def __init__(self):
super().__init__()
schedule.Namespace(
stack=self,
name="namespace-0001",
).master_data(
events=[
schedule.Event(
name='event-0001',
schedule_type=schedule.EventScheduleType.ABSOLUTE,
repeat_setting=schedule.RepeatSetting(
repeat_type=schedule.RepeatSettingRepeatType.ALWAYS,
options=schedule.RepeatSettingOptions(
begin_day_of_month=1,
end_day_of_month=1,
begin_hour=0,
end_hour=0,
active_days=1,
inactive_days=0,
),
),
options=schedule.EventOptions(
metadata = 'EVENT_0001',
absolute_begin = 10000,
absolute_end = 20000
),
),
schedule.Event(
name='event-0002',
schedule_type=schedule.EventScheduleType.RELATIVE,
repeat_setting=schedule.RepeatSetting(
repeat_type=schedule.RepeatSettingRepeatType.ALWAYS,
options=schedule.RepeatSettingOptions(
begin_day_of_month=1,
end_day_of_month=1,
begin_hour=0,
end_hour=0,
active_days=1,
inactive_days=0,
),
),
options=schedule.EventOptions(
metadata = 'EVENT_0002',
relative_trigger_name = 'trigger-0001'
),
),
schedule.Event(
name='daily-0001',
schedule_type=schedule.EventScheduleType.ABSOLUTE,
repeat_setting=schedule.RepeatSetting(
repeat_type=schedule.RepeatSettingRepeatType.ALWAYS,
options=schedule.RepeatSettingOptions(
begin_day_of_month=1,
end_day_of_month=1,
begin_hour=0,
end_hour=0,
active_days=1,
inactive_days=0,
),
),
options=schedule.EventOptions(
metadata = 'EVENT_0003',
absolute_begin = 1569369600000,
absolute_end = 1569456000000
),
),
schedule.Event(
name='daily-0002',
schedule_type=schedule.EventScheduleType.ABSOLUTE,
repeat_setting=schedule.RepeatSetting(
repeat_type=schedule.RepeatSettingRepeatType.ALWAYS,
options=schedule.RepeatSettingOptions(
begin_day_of_month=1,
end_day_of_month=1,
begin_hour=0,
end_hour=0,
active_days=1,
inactive_days=0,
),
),
options=schedule.EventOptions(
metadata = 'EVENT_0004',
absolute_begin = 1569369600000,
absolute_end = 1569456000000
),
),
schedule.Event(
name='weekly-0001',
schedule_type=schedule.EventScheduleType.ABSOLUTE,
repeat_setting=schedule.RepeatSetting(
repeat_type=schedule.RepeatSettingRepeatType.ALWAYS,
options=schedule.RepeatSettingOptions(
begin_day_of_month=1,
end_day_of_month=1,
begin_hour=0,
end_hour=0,
active_days=1,
inactive_days=0,
),
),
options=schedule.EventOptions(
metadata = 'EVENT_0005',
absolute_begin = 1569888000000,
absolute_end = 1570406400000
),
),
schedule.Event(
name='weekly-0002',
schedule_type=schedule.EventScheduleType.ABSOLUTE,
repeat_setting=schedule.RepeatSetting(
repeat_type=schedule.RepeatSettingRepeatType.ALWAYS,
options=schedule.RepeatSettingOptions(
begin_day_of_month=1,
end_day_of_month=1,
begin_hour=0,
end_hour=0,
active_days=1,
inactive_days=0,
),
),
options=schedule.EventOptions(
metadata = 'EVENT_0006',
absolute_begin = 1569888000000,
absolute_end = 1570406400000
),
),
schedule.Event(
name='monthly-0001',
schedule_type=schedule.EventScheduleType.ABSOLUTE,
repeat_setting=schedule.RepeatSetting(
repeat_type=schedule.RepeatSettingRepeatType.ALWAYS,
options=schedule.RepeatSettingOptions(
begin_day_of_month=1,
end_day_of_month=1,
begin_hour=0,
end_hour=0,
active_days=1,
inactive_days=0,
),
),
options=schedule.EventOptions(
metadata = 'EVENT_0007',
absolute_begin = 1570406400000,
absolute_end = 1575158400000
),
),
schedule.Event(
name='monthly-0002',
schedule_type=schedule.EventScheduleType.ABSOLUTE,
repeat_setting=schedule.RepeatSetting(
repeat_type=schedule.RepeatSettingRepeatType.ALWAYS,
options=schedule.RepeatSettingOptions(
begin_day_of_month=1,
end_day_of_month=1,
begin_hour=0,
end_hour=0,
active_days=1,
inactive_days=0,
),
),
options=schedule.EventOptions(
metadata = 'EVENT_0008',
absolute_begin = 1570406400000,
absolute_end = 1575158400000
),
),
],
)
print(SampleStack().yaml()) # Generate TemplateEvent
イベント
イベントの期間は絶対期間と相対期間の2種類存在します。
絶対期間は 例えば YYYY年MM月DD日 00:00(UTC) ~ YYYY年MM月DD日 23:59(UTC) のような固定の期間で、
相対期間は トリガーを引いたタイミングから 24時間 のようなゲームプレイヤー毎に異なる期間をイベント期間とするものです。
イベントには開催期間だけでなく、繰り返しが設定できるようになっており
イベント期間のうち、月曜日の 10:00 ~ 11:00 だけをイベント期間とするような設定も可能です。
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| eventId | string | ※ | ~ 1024文字 | GS2-Schedule イベント
GRN ※ サーバーが自動で設定 | ||||||||
| name | string | ✓ | ~ 128文字 | イベント名 イベント固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||||||||
| metadata | string | ~ 2048文字 | メタデータ メタデータには任意の値を設定できます。 これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。 | |||||||||
| scheduleType | 文字列列挙型 enum { “absolute”, “relative” } | ✓ | スケジュールタイプ イベント期間の定義方法を決定します。 “absolute” は全プレイヤー共通の固定開始・終了タイムスタンプを使用します。 “relative” はプレイヤーごとのトリガーを起点として使用し、パーソナライズされたイベント期間を実現します(例: 各プレイヤーの初回ログインから24時間)。
| |||||||||
| absoluteBegin | long | 絶対開始日時 絶対スケジューリングにおけるイベント期間の固定開始時刻。 全プレイヤーが同じ開始時刻を共有します。絶対イベントで未設定の場合、イベントは過去から開始されているものとして扱われます。 UNIX 時間(ミリ秒)で表現されます。 | ||||||||||
| absoluteEnd | long | 絶対終了日時 絶対スケジューリングにおけるイベント期間の固定終了時刻。 全プレイヤーが同じ終了時刻を共有します。絶対イベントで未設定の場合、イベントは終了しないものとして扱われます。 UNIX 時間(ミリ秒)で表現されます。 | ||||||||||
| relativeTriggerName | string | {scheduleType} == “relative” | ✓※ | ~ 128文字 | イベント開始トリガー名 ゲームプレイヤー毎にイベント期間を設定する ( relative) 場合に、イベントの開始の起点とするトリガーの名前を指定します。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 ※ scheduleType が “relative” であれば 必須 | |||||||
| repeatSetting | RepeatSetting | ✓ | 繰り返し設定 イベント期間内の繰り返し有効時間枠の設定。 アクティブ期間を特定の時間帯、曜日、月の日付、またはカスタムのアクティブ/インアクティブ日サイクルに絞り込むことができます。 繰り返しパターンなしでイベント期間全体を通してアクティブにするには repeatType を “always” に設定します。 |
RepeatSetting
繰り返し設定
イベント全体期間内の繰り返し有効時間枠を設定します。
5種類の繰り返しタイプをサポートします: “always”(イベント期間全体)、“daily”(毎日の特定時間帯)、“weekly”(毎週の特定曜日範囲+時間帯)、
“monthly”(毎月の特定日範囲+時間帯)、“custom”(基準日からのアクティブ/インアクティブ日数の交互サイクル)。
daily/weekly/monthly タイプで beginHour と endHour が同じ場合、終了時刻は翌日の同時刻として扱われます(つまり24時間フルウィンドウ)。
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| repeatType | 文字列列挙型 enum { “always”, “daily”, “weekly”, “monthly”, “custom” } | “always” | 繰り返しの種類 イベント期間内に適用する繰り返しパターンのタイプ。 タイプによって必要な追加フィールドが異なります: daily/weekly/monthly は時間設定、weekly は曜日、monthly は日付、custom は基準日と日数が必要です。 未指定の場合は “always” がデフォルトとなります。
| |||||||||||||||||||
| beginDayOfMonth | int | {repeatType} == “monthly” | ✓※ | 1 ~ 31 | 繰り返し開始日 繰り返しウィンドウが開始する月の日(1~31)。 指定した値がその月の日数を超える場合、その月の最終日として扱われます。 repeatType が “monthly” の場合のみ適用されます。 ※ repeatType が “monthly” であれば 必須 | |||||||||||||||||
| endDayOfMonth | int | {repeatType} == “monthly” | ✓※ | 1 ~ 31 | 繰り返し終了日 繰り返しウィンドウが終了する月の日(1~31)。 指定した値がその月の日数を超える場合、その月の最終日として扱われます。 repeatType が “monthly” の場合のみ適用されます。 ※ repeatType が “monthly” であれば 必須 | |||||||||||||||||
| beginDayOfWeek | 文字列列挙型 enum { “sunday”, “monday”, “tuesday”, “wednesday”, “thursday”, “friday”, “saturday” } | {repeatType} == “weekly” | ✓※ | 繰り返し開始曜日 繰り返しウィンドウが開始する曜日。 ウィンドウは週の境界をまたぐことができます(例: 金曜日~月曜日)。repeatType が “weekly” の場合のみ適用されます。
※ repeatType が “weekly” であれば 必須 | ||||||||||||||||||
| endDayOfWeek | 文字列列挙型 enum { “sunday”, “monday”, “tuesday”, “wednesday”, “thursday”, “friday”, “saturday” } | {repeatType} == “weekly” | ✓※ | 繰り返し終了曜日 繰り返しウィンドウが終了する曜日。 beginDayOfWeek と組み合わせて週間アクティブ期間を定義します。repeatType が “weekly” の場合のみ適用されます。
※ repeatType が “weekly” であれば 必須 | ||||||||||||||||||
| beginHour | int | {repeatType} in [“daily”, “weekly”, “monthly”] | ✓※ | 0 ~ 23 | 繰り返し開始時(時) 各サイクルで繰り返しウィンドウが開始する時刻(UTC、0~23)。 daily、weekly、monthly の繰り返しタイプで必須です。beginHour と endHour が同じ場合、ウィンドウは24時間(翌日の同時刻まで)となります。 ※ repeatType が “daily”,“weekly”,“monthly"であれば 必須 | |||||||||||||||||
| endHour | int | {repeatType} in [“daily”, “weekly”, “monthly”] | ✓※ | 0 ~ 24 | 繰り返し終了時(時) 各サイクルで繰り返しウィンドウが終了する時刻(UTC、0~24)。 24 を指定すると翌日の深夜0時を表します。daily、weekly、monthly の繰り返しタイプで必須です。 ※ repeatType が “daily”,“weekly”,“monthly"であれば 必須 | |||||||||||||||||
| anchorTimestamp | long | {repeatType} == “custom” | ✓※ | 基準タイムスタンプ カスタムのアクティブ/インアクティブサイクルが開始する基準日。 システムはこの基準日からの経過日数に基づいて、現在時刻がどのフェーズ(アクティブまたはインアクティブ)にあるかを計算します。 repeatType が “custom” の場合のみ適用されます。UNIX 時間(ミリ秒)で表現します。 ※ repeatType が “custom” であれば 必須 | ||||||||||||||||||
| activeDays | int | {repeatType} == “custom” | ✓※ | 1 ~ 2147483646 | アクティブ日数 カスタムサイクルの各周期でイベントがアクティブとなる連続日数。 アクティブ日数の後、inactiveDays で指定された日数だけイベントが非アクティブとなり、サイクルが繰り返されます。 repeatType が “custom” の場合のみ適用されます。最小1日。 ※ repeatType が “custom” であれば 必須 | |||||||||||||||||
| inactiveDays | int | {repeatType} == “custom” | ✓※ | 0 ~ 2147483646 | インアクティブ日数 カスタムサイクルの各周期でイベントが非アクティブとなる連続日数。 アクティブ日数の後に続きます。ギャップなしの連続アクティブイベントにするには 0 を設定します。 repeatType が “custom” の場合のみ適用されます。最小0日。 ※ repeatType が “custom” であれば 必須 |