GS2-Deploy/CDK Reference of GS2-Friend

Entities

Namespace

Namespace

Namespace is a mechanism that allows multiple uses of the same service for different purposes within a single project. Basically, GS2 services have a layer called namespace, and different namespaces are treated as completely different data spaces, even for the same service.

Therefore, it is necessary to create a namespace before starting to use each service.

TypeRequireDefaultLimitationDescription
namestring~ 32 charsNamespace name
descriptionstring~ 1024 charsdescription of Namespace
followScriptScriptSettingScript to run when followed
unfollowScriptScriptSettingScript to run when unfollowed
sendRequestScriptScriptSettingScript to run when a friend request is issued
cancelRequestScriptScriptSettingScript to execute when a friend request is canceled
acceptRequestScriptScriptSettingScript to run when a friend request is accepted
rejectRequestScriptScriptSettingScript to execute when a friend request is rejected
deleteFriendScriptScriptSettingScript to run when a friend is deleted
updateProfileScriptScriptSettingScript to run when you update your profile
followNotificationNotificationSettingPush notification when you are followed
receiveRequestNotificationNotificationSettingPush notification when a friend request is received
acceptRequestNotificationNotificationSettingPush notification when a friend request is approved
logSettingLogSettingLog output settings

GetAttr

TypeDescription
ItemNamespaceNamespace created

Implementation Example

Type: GS2::Friend::Namespace
Properties:
  Name: namespace1
  Description: null
  FollowScript: null
  UnfollowScript: null
  SendRequestScript: null
  CancelRequestScript: null
  AcceptRequestScript: null
  RejectRequestScript: null
  DeleteFriendScript: null
  UpdateProfileScript: null
  FollowNotification: null
  ReceiveRequestNotification: null
  AcceptRequestNotification: null
  LogSetting: 
    LoggingNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1
from gs2_cdk import Stack, core, friend

class SampleStack(Stack):

    def __init__(self):
        super().__init__()
        friend.Namespace(
            stack=self,
            name="namespace-0001",
            options=friend.NamespaceOptions(
                log_setting=core.LogSetting(
                    logging_namespace_id='grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001',
                ),
            ),
        )

print(SampleStack().yaml())  # Generate Template
class SampleStack extends \Gs2Cdk\Core\Model\Stack
{
    function __construct() {
        parent::__construct();
        new \Gs2Cdk\Friend\Model\Namespace_(
            stack: $this,
            name: "namespace-0001",
            options: new \Gs2Cdk\Friend\Model\Options\NamespaceOptions(
                logSetting: new \Gs2Cdk\Core\Model\LogSetting(
                    loggingNamespaceId: "grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001",
                ),
            ),
        );
    }
}

print((new SampleStack())->yaml());  // Generate Template
class SampleStack extends io.gs2.cdk.core.model.Stack
{
    public SampleStack() {
        super();
        new io.gs2.cdk.friend.model.Namespace(
            this,
            "namespace-0001",
            new io.gs2.cdk.friend.model.options.NamespaceOptions() {
                {
                    logSetting = new io.gs2.cdk.core.model.LogSetting(
                        "grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001"
                    );
                }
            }
        );
    }
}

System.out.println(new SampleStack().yaml());  // Generate Template
import core from "@/gs2cdk/core";
import friend from "@/gs2cdk/friend";

class SampleStack extends core.Stack
{
    public constructor() {
        super();
        new friend.model.Namespace(
            this,
            "namespace-0001",
            {
                logSetting: new core.LogSetting(
                    "grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001"
                )
            }
        );
    }
}

console.log(new SampleStack().yaml());  // Generate Template
public class SampleStack : Gs2Cdk.Core.Model.Stack
{
    public SampleStack() {
        new Gs2Cdk.Gs2Friend.Model.Namespace(
            this,
            "namespace-0001",
            new Gs2Cdk.Gs2Friend.Model.Options.NamespaceOptions {
                logSetting = new Gs2Cdk.Core.Model.LogSetting(
                    "grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001"
                ),
            }
        );
    }
}

Debug.Log(new SampleStack().Yaml());  // Generate Template

ScriptSetting

TypeRequireDefaultLimitationDescription
triggerScriptIdstring~ 1024 charsScript GRN
doneTriggerTargetTypeenum [’none’, ‘gs2_script’, ‘aws’]“none”~ 128 charsNotification of Completion
doneTriggerScriptIdstring{doneTriggerTargetType} == “gs2_script”~ 1024 charsScript GRN
doneTriggerQueueNamespaceIdstring{doneTriggerTargetType} == “gs2_script”~ 1024 charsNamespace GRN

NotificationSetting

TypeRequireDefaultLimitationDescription
gatewayNamespaceIdstring~ 1024 charsNamespace GRN
enableTransferMobileNotificationbool?Forwarding to mobile push notification
soundstring~ 1024 charsSound file name to be used for mobile push notifications

LogSetting

TypeRequireDefaultLimitationDescription
loggingNamespaceIdstring~ 1024 charsNamespace GRN