Documentation index for AI agents

GS2-Mission 트랜잭션 액션

검증/소비/입수 각 트랜잭션 액션의 사양

Verify Action

검증 액션

Gs2Mission:VerifyCompleteByUserId

사용자 ID를 지정하여 미션 달성 상황 검증

지정된 사용자의 미션 태스크의 달성 상황 또는 수령 상황을 검증합니다.

수량 지정 가능한 액션: 아니오

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
missionGroupNamestring
~ 128자미션 그룹명
이 달성 상황 레코드가 속한 미션 그룹의 이름입니다. 사용자별·미션 그룹별로 하나의 달성 상황 레코드가 존재합니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
verifyType문자열 열거형
enum {
  “completed”,
  “notCompleted”,
  “received”,
  “notReceived”,
  “completedAndNotReceived”
}
검증 종류
정의설명
completed조건이 달성 완료 상태임
notCompleted조건이 미달성 상태임
received보상이 수령 완료 상태임
notReceived보상이 미수령 상태임
completedAndNotReceived조건이 달성 완료 상태이고 보상이 미수령 상태임
missionTaskNamestring
~ 128자미션 태스크 모델 이름
미션 태스크 모델 고유의 이름. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
multiplyValueSpecifyingQuantityboolfalse수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Mission:VerifyCompleteByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "missionGroupName": "[string]미션 그룹명",
        "userId": "[string]사용자ID",
        "verifyType": "[string]검증 종류",
        "missionTaskName": "[string]미션 태스크 모델 이름",
        "multiplyValueSpecifyingQuantity": "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Mission:VerifyCompleteByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  missionGroupName: "[string]미션 그룹명"
  userId: "[string]사용자ID"
  verifyType: "[string]검증 종류"
  missionTaskName: "[string]미션 태스크 모델 이름"
  multiplyValueSpecifyingQuantity: "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("mission").verify.verify_complete_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    missionGroupName="[string]미션 그룹명",
    userId="[string]사용자ID",
    verifyType="[string]검증 종류",
    missionTaskName="[string]미션 태스크 모델 이름",
    multiplyValueSpecifyingQuantity="[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
    timeOffsetToken="[string]타임 오프셋 토큰",
})

Gs2Mission:VerifyCounterValueByUserId

사용자 ID를 지정하여 카운터 값 검증

지정된 사용자의 카운터의 스코프별 값이 지정된 조건을 충족하는지 검증합니다.

수량 지정 가능한 액션: 예

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
counterNamestring
~ 128자카운터 모델 이름
이 카운터 인스턴스의 기반이 되는 카운터 모델의 이름입니다. 스코프와 리셋 타이밍을 정의하는 카운터 모델 정의에 연결됩니다.
verifyType문자열 열거형
enum {
  “less”,
  “lessEqual”,
  “greater”,
  “greaterEqual”,
  “equal”,
  “notEqual”
}
검증 종류
정의설명
less카운터 값이 지정 값 미만임
lessEqual카운터 값이 지정 값 이하임
greater카운터 값이 지정 값 초과임
greaterEqual카운터 값이 지정 값 이상임
equal카운터 값이 지정 값과 일치함
notEqual카운터 값이 지정 값과 일치하지 않음
scopeType문자열 열거형
enum {
  “resetTiming”,
  “verifyAction”
}
“resetTiming”스코프 종류
이 스코프 값이 리셋 타이밍 스케줄에 기반한 것인지, 검증 액션 조건에 기반한 것인지를 나타냅니다.
정의설명
resetTiming리셋 타이밍
verifyAction검증 액션
resetType문자열 열거형
enum {
  “notReset”,
  “daily”,
  “weekly”,
  “monthly”,
  “days”
}
{scopeType} == “resetTiming”
✓※
리셋 타이밍
이 스코프 값의 리셋 타이밍입니다. 카운터 값이 리셋될 때까지의 누적 기간을 결정합니다. scopeType이 “resetTiming"인 경우에만 적용됩니다.
정의설명
notReset리셋 안 함
daily매일
weekly매주
monthly매월
days일정 일수마다
※ scopeType이(가) “resetTiming” 이면 필수
conditionNamestring{scopeType} == “verifyAction”
✓※
~ 128자조건 이름
이 스코프 값이 대응하는 검증 액션 조건의 이름입니다. 이 값이 어느 조건 스코프에 속하는지 식별하는 데 사용됩니다. scopeType이 “verifyAction"인 경우에만 적용됩니다.
※ scopeType이(가) “verifyAction” 이면 필수
valuelong00 ~ 9223372036854775805카운트
이 스코프의 누적 카운터 값입니다. 카운터가 증가하면 늘어나고 감소하면 줄어듭니다. 값은 최댓값으로 상한이 설정되며, 0 미만으로 내려가지 않습니다.
multiplyValueSpecifyingQuantityboolfalse수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Mission:VerifyCounterValueByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "counterName": "[string]카운터 모델 이름",
        "verifyType": "[string]검증 종류",
        "scopeType": "[string]스코프 종류",
        "resetType": "[string]리셋 타이밍",
        "conditionName": "[string]조건 이름",
        "value": "[long]카운트",
        "multiplyValueSpecifyingQuantity": "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Mission:VerifyCounterValueByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  counterName: "[string]카운터 모델 이름"
  verifyType: "[string]검증 종류"
  scopeType: "[string]스코프 종류"
  resetType: "[string]리셋 타이밍"
  conditionName: "[string]조건 이름"
  value: "[long]카운트"
  multiplyValueSpecifyingQuantity: "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("mission").verify.verify_counter_value_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    counterName="[string]카운터 모델 이름",
    verifyType="[string]검증 종류",
    scopeType="[string]스코프 종류",
    resetType="[string]리셋 타이밍",
    conditionName="[string]조건 이름",
    value="[long]카운트",
    multiplyValueSpecifyingQuantity="[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
    timeOffsetToken="[string]타임 오프셋 토큰",
})

Consume Action

소비 액션

Gs2Mission:ReceiveByUserId

미션 달성 보상 수령

지정된 사용자의 지정 미션 태스크를 수령 완료 상태로 표시합니다.

수량 지정 가능한 액션: 아니오

반전 가능한 액션: 예

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
missionGroupNamestring
~ 128자미션 그룹명
이 달성 상황 레코드가 속한 미션 그룹의 이름입니다. 사용자별·미션 그룹별로 하나의 달성 상황 레코드가 존재합니다.
missionTaskNamestring
~ 128자태스크 이름
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Mission:ReceiveByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "missionGroupName": "[string]미션 그룹명",
        "missionTaskName": "[string]태스크 이름",
        "userId": "[string]사용자ID",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Mission:ReceiveByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  missionGroupName: "[string]미션 그룹명"
  missionTaskName: "[string]태스크 이름"
  userId: "[string]사용자ID"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("mission").consume.receive_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    missionGroupName="[string]미션 그룹명",
    missionTaskName="[string]태스크 이름",
    userId="[string]사용자ID",
    timeOffsetToken="[string]타임 오프셋 토큰",
})

Gs2Mission:BatchReceiveByUserId

여러 미션 태스크의 달성 보상을 일괄로 수령 상태로 변경

동일한 미션 그룹 내 여러 미션 태스크를 일괄로 수령 완료 상태로 표시합니다.

수량 지정 가능한 액션: 아니오

반전 가능한 액션: 아니오

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
missionGroupNamestring
~ 128자미션 그룹명
이 달성 상황 레코드가 속한 미션 그룹의 이름입니다. 사용자별·미션 그룹별로 하나의 달성 상황 레코드가 존재합니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
missionTaskNamesList<string>
1 ~ 100 items태스크 이름 리스트
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Mission:BatchReceiveByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "missionGroupName": "[string]미션 그룹명",
        "userId": "[string]사용자ID",
        "missionTaskNames": [
            "[string]태스크 이름"
        ],
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Mission:BatchReceiveByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  missionGroupName: "[string]미션 그룹명"
  userId: "[string]사용자ID"
  missionTaskNames:
    - "[string]태스크 이름"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("mission").consume.batch_receive_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    missionGroupName="[string]미션 그룹명",
    userId="[string]사용자ID",
    missionTaskNames={
        "[string]태스크 이름"
    },
    timeOffsetToken="[string]타임 오프셋 토큰",
})

Gs2Mission:DecreaseCounterByUserId

사용자 ID를 지정하여 카운터 감산

지정된 사용자의 카운터에서 지정한 값을 감산합니다.

수량 지정 가능한 액션: 예

반전 가능한 액션: 예

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
counterNamestring
~ 128자카운터 모델 이름
이 카운터 인스턴스의 기반이 되는 카운터 모델의 이름입니다. 스코프와 리셋 타이밍을 정의하는 카운터 모델 정의에 연결됩니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
valuelong
1 ~ 9223372036854775805감산할 값
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Mission:DecreaseCounterByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "counterName": "[string]카운터 모델 이름",
        "userId": "[string]사용자ID",
        "value": "[long]감산할 값",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Mission:DecreaseCounterByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  counterName: "[string]카운터 모델 이름"
  userId: "[string]사용자ID"
  value: "[long]감산할 값"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("mission").consume.decrease_counter_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    counterName="[string]카운터 모델 이름",
    userId="[string]사용자ID",
    value="[long]감산할 값",
    timeOffsetToken="[string]타임 오프셋 토큰",
})

Gs2Mission:ResetCounterByUserId

사용자 ID를 지정하여 카운터 리셋

지정된 사용자의 지정된 스코프의 카운터 값을 리셋합니다.

수량 지정 가능한 액션: 아니오

반전 가능한 액션: 아니오

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
counterNamestring
~ 128자카운터 모델 이름
이 카운터 인스턴스의 기반이 되는 카운터 모델의 이름입니다. 스코프와 리셋 타이밍을 정의하는 카운터 모델 정의에 연결됩니다.
scopesList<ScopedValue>
1 ~ 20 items스코프 리스트
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Mission:ResetCounterByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "counterName": "[string]카운터 모델 이름",
        "scopes": [
            {
                "scopeType": "[string]스코프 종류",
                "resetType": "[string]리셋 타이밍",
                "conditionName": "[string]조건 이름",
                "value": "[long]카운트",
                "nextResetAt": "[long]다음 리셋 타이밍",
                "updatedAt": "[long]최종 갱신일시"
            }
        ],
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Mission:ResetCounterByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  counterName: "[string]카운터 모델 이름"
  scopes:
    - scopeType: "[string]스코프 종류"
      resetType: "[string]리셋 타이밍"
      conditionName: "[string]조건 이름"
      value: "[long]카운트"
      nextResetAt: "[long]다음 리셋 타이밍"
      updatedAt: "[long]최종 갱신일시"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("mission").consume.reset_counter_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    counterName="[string]카운터 모델 이름",
    scopes={
        {
            scopeType="[string]스코프 종류",
            resetType="[string]리셋 타이밍",
            conditionName="[string]조건 이름",
            value="[long]카운트",
            nextResetAt="[long]다음 리셋 타이밍",
            updatedAt="[long]최종 갱신일시"
        }
    },
    timeOffsetToken="[string]타임 오프셋 토큰",
})

Acquire Action

입수 액션

Gs2Mission:RevertReceiveByUserId

미션 달성 보상을 미수령 상태로 되돌리기

미션 태스크의 수령 상태를 미수령으로 되돌립니다.

수량 지정 가능한 액션: 아니오

반전 가능한 액션: 예

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
missionGroupNamestring
~ 128자미션 그룹명
이 달성 상황 레코드가 속한 미션 그룹의 이름입니다. 사용자별·미션 그룹별로 하나의 달성 상황 레코드가 존재합니다.
missionTaskNamestring
~ 128자태스크 이름
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Mission:RevertReceiveByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "missionGroupName": "[string]미션 그룹명",
        "missionTaskName": "[string]태스크 이름",
        "userId": "[string]사용자ID",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Mission:RevertReceiveByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  missionGroupName: "[string]미션 그룹명"
  missionTaskName: "[string]태스크 이름"
  userId: "[string]사용자ID"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("mission").acquire.revert_receive_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    missionGroupName="[string]미션 그룹명",
    missionTaskName="[string]태스크 이름",
    userId="[string]사용자ID",
    timeOffsetToken="[string]타임 오프셋 토큰",
})

Gs2Mission:IncreaseCounterByUserId

사용자 ID를 지정하여 카운터를 가산

지정된 사용자의 카운터에 지정한 값을 가산합니다.
가산 후, 이 카운터를 참조하는 모든 미션 태스크가 자동으로 재평가되며, 새롭게 달성된 미션은 changedCompletes 응답에서 반환됩니다.

수량 지정 가능한 액션: 예

반전 가능한 액션: 예

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
counterNamestring
~ 128자카운터 모델 이름
이 카운터 인스턴스의 기반이 되는 카운터 모델의 이름입니다. 스코프와 리셋 타이밍을 정의하는 카운터 모델 정의에 연결됩니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
valuelong
1 ~ 9223372036854775805가산할 값
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Mission:IncreaseCounterByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "counterName": "[string]카운터 모델 이름",
        "userId": "[string]사용자ID",
        "value": "[long]가산할 값",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Mission:IncreaseCounterByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  counterName: "[string]카운터 모델 이름"
  userId: "[string]사용자ID"
  value: "[long]가산할 값"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("mission").acquire.increase_counter_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    counterName="[string]카운터 모델 이름",
    userId="[string]사용자ID",
    value="[long]가산할 값",
    timeOffsetToken="[string]타임 오프셋 토큰",
})

Gs2Mission:SetCounterByUserId

사용자 ID를 지정하여 카운터를 설정

지정된 사용자의 카운터의 스코프 값을 직접 설정하여 기존 값을 대체합니다.
변경 전과 변경 후의 카운터 상태, 그리고 새롭게 달성된 미션이 changedCompletes 응답에서 반환됩니다.

수량 지정 가능한 액션: 아니오

반전 가능한 액션: 아니오

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
counterNamestring
~ 128자카운터 모델 이름
이 카운터 인스턴스의 기반이 되는 카운터 모델의 이름입니다. 스코프와 리셋 타이밍을 정의하는 카운터 모델 정의에 연결됩니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
valuesList<ScopedValue>0 ~ 20 items설정할 값의 리스트
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Mission:SetCounterByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "counterName": "[string]카운터 모델 이름",
        "userId": "[string]사용자ID",
        "values": [
            {
                "scopeType": "[string]스코프 종류",
                "resetType": "[string]리셋 타이밍",
                "conditionName": "[string]조건 이름",
                "value": "[long]카운트",
                "nextResetAt": "[long]다음 리셋 타이밍",
                "updatedAt": "[long]최종 갱신일시"
            }
        ],
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Mission:SetCounterByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  counterName: "[string]카운터 모델 이름"
  userId: "[string]사용자ID"
  values:
    - scopeType: "[string]스코프 종류"
      resetType: "[string]리셋 타이밍"
      conditionName: "[string]조건 이름"
      value: "[long]카운트"
      nextResetAt: "[long]다음 리셋 타이밍"
      updatedAt: "[long]최종 갱신일시"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("mission").acquire.set_counter_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    counterName="[string]카운터 모델 이름",
    userId="[string]사용자ID",
    values={
        {
            scopeType="[string]스코프 종류",
            resetType="[string]리셋 타이밍",
            conditionName="[string]조건 이름",
            value="[long]카운트",
            nextResetAt="[long]다음 리셋 타이밍",
            updatedAt="[long]최종 갱신일시"
        }
    },
    timeOffsetToken="[string]타임 오프셋 토큰",
})