> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2-Schedule 트랜잭션 액션

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




## Verify Action

검증 액션

### Gs2Schedule:VerifyTriggerByUserId

사용자 ID를 지정하여 트리거가 당겨진 후 경과 시간 검증<br>

지정한 사용자의 트리거 상태에 관한 조건을 검증합니다. verifyType은 'notTriggerd', 'elapsed', 'notElapsed'를 설정할 수 있습니다. 검증 조건이 충족되지 않으면 오류를 반환합니다.

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

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| triggerName | string |  | ✓|  |  ~ 128자 | 트리거 이름<br>트리거 고유 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| verifyType | 문자열 열거형<br>enum {<br>"notTriggerd",<br>"elapsed",<br>"notElapsed"<br>}<br> |  | ✓|  |  | 검증 종류notTriggerd: 트리거가 당겨지지 않음 / elapsed: 지정한 시간이 경과함 / notElapsed: 지정한 시간이 경과하지 않음 /  |
| elapsedMinutes | int | {verifyType} in ["elapsed", "notElapsed"] | ✓※|  | 0 ~ 2147483646 | 경과 시간(분)<br>※ verifyType이(가) "elapsed","notElapsed"이면 필수 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Schedule:VerifyTriggerByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "triggerName": "[string]트리거 이름",
        "verifyType": "[string]검증 종류",
        "elapsedMinutes": "[int]경과 시간(분)",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Schedule:VerifyTriggerByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  triggerName: "[string]트리거 이름"
  verifyType: "[string]검증 종류"
  elapsedMinutes: "[int]경과 시간(분)"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("schedule").verify.verify_trigger_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    triggerName="[string]트리거 이름",
    verifyType="[string]검증 종류",
    elapsedMinutes="[int]경과 시간(분)",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

### Gs2Schedule:VerifyEventByUserId

사용자 ID를 지정하여 이벤트 개최 기간인지 검증<br>

지정한 사용자에 대해 지정된 이벤트가 현재 활성 스케줄 기간 내에 있는지 검증합니다. verifyType 은 'inSchedule' 또는 'notInSchedule' 을 설정할 수 있습니다. 검증 조건이 충족되지 않으면 오류가 반환됩니다.

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

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| eventName | string |  | ✓|  |  ~ 128자 | 이벤트 이름<br>이벤트 고유의 이름. 영숫자 및 -(하이픈), _(언더스코어), .(마침표)로 지정합니다. |
| verifyType | 문자열 열거형<br>enum {<br>"inSchedule",<br>"notInSchedule"<br>}<br> |  | ✓|  |  | 검증 종류inSchedule: 이벤트의 개최 기간임 / notInSchedule: 이벤트의 개최 기간이 아님 /  |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Schedule:VerifyEventByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "eventName": "[string]이벤트 이름",
        "verifyType": "[string]검증 종류",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Schedule:VerifyEventByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  eventName: "[string]이벤트 이름"
  verifyType: "[string]검증 종류"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("schedule").verify.verify_event_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    eventName="[string]이벤트 이름",
    verifyType="[string]검증 종류",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

## Consume Action

소비 액션

### Gs2Schedule:DeleteTriggerByUserId

사용자 ID를 지정하여 트리거 삭제<br>

지정한 사용자의 지정된 트리거를 삭제합니다. 트리거를 삭제하면 관련된 상대 스케줄 이벤트가 비활성화됩니다.

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

**반전 가능한 액션: 아니오**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| triggerName | string |  | ✓|  |  ~ 128자 | 트리거 이름<br>트리거 고유 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Schedule:DeleteTriggerByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "triggerName": "[string]트리거 이름",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Schedule:DeleteTriggerByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  triggerName: "[string]트리거 이름"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("schedule").consume.delete_trigger_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    triggerName="[string]트리거 이름",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

## Acquire Action

입수 액션

### Gs2Schedule:TriggerByUserId

사용자 ID를 지정하여 트리거 실행<br>

지정한 사용자의 트리거를 당깁니다. 트리거 전략에 따라 동작이 결정됩니다: 'renew'는 새로운 TTL로 리셋, 'extend'는 기존 TTL을 연장, 'drop'은 이미 당겨진 경우 무시, 'repeatCycleEnd'/'repeatCycleNextStart'/'absoluteEnd'는 지정한 이벤트의 스케줄에 유효기간을 맞춥니다. 트리거를 당기면 관련된 상대 스케줄 이벤트가 활성화됩니다.

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

**반전 가능한 액션: 예**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| triggerName | string |  | ✓|  |  ~ 128자 | 트리거 이름<br>트리거 고유 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| triggerStrategy | 문자열 열거형<br>enum {<br>"renew",<br>"extend",<br>"drop",<br>"repeatCycleEnd",<br>"repeatCycleNextStart",<br>"absoluteEnd"<br>}<br> |  | ✓|  |  | 트리거 실행 정책renew: 이미 트리거가 당겨진 경우 새로운 기간으로 다시 당기기 / extend: 이미 트리거가 당겨진 경우 기간 연장 / drop: 이미 트리거가 당겨진 경우 무시 / repeatCycleEnd: 지정한 이벤트의 반복 기간 종료 일시에 유효 기간이 만료되도록 트리거 당기기 / repeatCycleNextStart: 지정한 이벤트의 반복에서 다음 반복 시작 일시에 유효 기간이 만료되도록 트리거 당기기 / absoluteEnd: 지정한 이벤트의 종료 일시에 유효 기간이 만료되도록 트리거 당기기 /  |
| ttl | int | {triggerStrategy} in ["renew", "extend", "drop"] | ✓※|  | 0 ~ 2147483646 | 트리거 유효기간(초)<br>※ triggerStrategy이(가) "renew","extend","drop"이면 필수 |
| eventId | string | {triggerStrategy} in ["repeatCycleEnd", "repeatCycleNextStart", "absoluteEnd"] | ✓※|  |  ~ 1024자 | 이벤트 GRN<br>※ triggerStrategy이(가) "repeatCycleEnd","repeatCycleNextStart","absoluteEnd"이면 필수 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Schedule:TriggerByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "triggerName": "[string]트리거 이름",
        "userId": "[string]사용자ID",
        "triggerStrategy": "[string]트리거 실행 정책",
        "ttl": "[int]트리거 유효기간(초)",
        "eventId": "[string]이벤트 GRN",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Schedule:TriggerByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  triggerName: "[string]트리거 이름"
  userId: "[string]사용자ID"
  triggerStrategy: "[string]트리거 실행 정책"
  ttl: "[int]트리거 유효기간(초)"
  eventId: "[string]이벤트 GRN"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("schedule").acquire.trigger_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    triggerName="[string]트리거 이름",
    userId="[string]사용자ID",
    triggerStrategy="[string]트리거 실행 정책",
    ttl="[int]트리거 유효기간(초)",
    eventId="[string]이벤트 GRN",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

### Gs2Schedule:ExtendTriggerByUserId

사용자 ID를 지정하여 트리거 기간 연장<br>

지정한 사용자의 기존 트리거 유효기간을 지정한 초만큼 연장합니다. 트리거가 존재하지 않는 경우, 지정한 연장 기간을 TTL로 하는 새로운 트리거가 생성됩니다.

**수량 지정 가능한 액션: 예**

**반전 가능한 액션: 아니오**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| triggerName | string |  | ✓|  |  ~ 128자 | 트리거 이름<br>트리거 고유 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| extendSeconds | int |  | ✓|  | 0 ~ 2147483646 | 트리거를 연장하는 기간(초) |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Schedule:ExtendTriggerByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "triggerName": "[string]트리거 이름",
        "userId": "[string]사용자ID",
        "extendSeconds": "[int]트리거를 연장하는 기간(초)",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Schedule:ExtendTriggerByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  triggerName: "[string]트리거 이름"
  userId: "[string]사용자ID"
  extendSeconds: "[int]트리거를 연장하는 기간(초)"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("schedule").acquire.extend_trigger_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    triggerName="[string]트리거 이름",
    userId="[string]사용자ID",
    extendSeconds="[int]트리거를 연장하는 기간(초)",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---



