---
updatedAt: 2026-04-30T09:46:48.000Z
agentTools:
  projectIndex: https://developers.modusign.co.kr/llms.txt
---

# 선택한 Revision 내용으로 템플릿 복원

선택한 Revision과 동일한 내용으로 템플릿의 **새 Revision을 생성**합니다. 기존 Revision은 그대로 유지됩니다.
- 응답의 `latestRevisionId`가 새로 생성된 Revision의 ID 입니다.
- 결재선이나 문서 라벨이 이미 삭제되어 함께 복원할 수 없는 항목은 `unrestorableProperties`에 담겨 반환됩니다.

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "paths": {
    "/templates/{templateId}/revisions/{revisionId}/restore": {
      "post": {
        "description": "선택한 Revision과 동일한 내용으로 템플릿의 **새 Revision을 생성**합니다. 기존 Revision은 그대로 유지됩니다.\n- 응답의 `latestRevisionId`가 새로 생성된 Revision의 ID 입니다.\n- 결재선이나 문서 라벨이 이미 삭제되어 함께 복원할 수 없는 항목은 `unrestorableProperties`에 담겨 반환됩니다.",
        "operationId": "TemplateController_restoreTemplateRevision",
        "parameters": [
          {
            "name": "templateId",
            "required": true,
            "in": "path",
            "description": "템플릿 ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "revisionId",
            "required": true,
            "in": "path",
            "description": "복원할 Revision ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestoreTemplateRevisionResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "복원 권한이 없거나 요금제 검증에 실패한 경우. 요금제 거절이면 원인을 `data.reason`으로 구분합니다.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanAuthorityErrorResponseDto"
                }
              }
            }
          },
          "404": {
            "description": "템플릿 또는 Revision을 찾을 수 없습니다."
          },
          "422": {
            "description": "규칙 그래프 위반 또는 같은 요청 안의 중복 대상",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ConditionalRuleReferenceNotFoundException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleCycleDetectedException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleParticipantScopeViolationException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleTargetLimitExceededException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleTriggerValueNotAllowedException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleCarrierNotAllowedException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleRequesterCarrierNotAllowedException"
                    },
                    {
                      "$ref": "#/components/schemas/DataLabelNotUniqueException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleOneClickTargetNotAllowedException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleGraphSizeExceededException"
                    }
                  ]
                },
                "examples": {
                  "referenceNotFound": {
                    "summary": "규칙이 가리키는 조건 입력란이 없음",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleReferenceNotFoundException",
                      "title": "Conditional rule refers to a field that does not exist",
                      "detail": "Conditional rule refers to '결제수단', which is not in the requested document. Check that the field is not excluded.",
                      "data": {
                        "dataLabel": "결제수단",
                        "groupDataLabel": null
                      }
                    }
                  },
                  "cycleDetected": {
                    "summary": "순환 참조",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleCycleDetectedException",
                      "title": "Conditional rule graph must be acyclic",
                      "detail": "Conditional rule cycle detected: 결제수단 -> 카드종류 -> 결제수단.",
                      "data": {
                        "cycle": [
                          "결제수단",
                          "카드종류",
                          "결제수단"
                        ]
                      }
                    }
                  },
                  "participantScopeViolation": {
                    "summary": "서로 다른 참여자의 입력란을 조건·대상으로 연결",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleParticipantScopeViolationException",
                      "title": "Conditional rule must stay within a single participant",
                      "detail": "Target field '카드번호' belongs to participant '보증인' but its trigger field '결제수단' belongs to participant '신청자'.",
                      "data": {
                        "targetDataLabel": "카드번호",
                        "targetParticipantDataLabel": "보증인",
                        "triggerDataLabel": "결제수단",
                        "triggerParticipantDataLabel": "신청자"
                      }
                    }
                  },
                  "targetLimitExceeded": {
                    "summary": "한 규칙의 대상 수 상한 초과",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleTargetLimitExceededException",
                      "title": "Conditional rule target count exceeded",
                      "detail": "A conditional rule triggered by '결제수단' must target at most 100 carriers. (currentCount: 101)",
                      "data": {
                        "triggerDataLabel": "결제수단",
                        "maxCount": 100,
                        "currentCount": 101
                      }
                    }
                  },
                  "triggerValueNotAllowed": {
                    "summary": "조건 입력란이 가질 수 없는 기대값",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleTriggerValueNotAllowedException",
                      "title": "Conditional rule trigger value is not allowed",
                      "detail": "Conditional rule expects '결제수단' to be '신용가드', which is not one of its allowed values ('신용카드', '현금').",
                      "data": {
                        "dataLabel": "결제수단",
                        "groupDataLabel": null,
                        "value": "신용가드",
                        "allowedValues": [
                          "신용카드",
                          "현금"
                        ]
                      }
                    }
                  },
                  "carrierNotAllowed": {
                    "summary": "조건 입력란으로 쓸 수 없는 종류",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleCarrierNotAllowedException",
                      "title": "Conditional rule carrier is not allowed",
                      "detail": "'이름' of type 'TEXT' cannot be used as the trigger of a conditional rule.",
                      "data": {
                        "dataLabel": "이름",
                        "fieldType": "TEXT",
                        "role": "TRIGGER"
                      }
                    }
                  },
                  "requesterCarrierNotAllowed": {
                    "summary": "요청자 입력란을 규칙에 사용",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleRequesterCarrierNotAllowedException",
                      "title": "Requester field cannot take part in a conditional rule",
                      "detail": "Field '계약금액' belongs to requester '요청자' and cannot be used as the trigger of a conditional rule.",
                      "data": {
                        "dataLabel": "계약금액",
                        "participantDataLabel": "요청자",
                        "role": "TRIGGER"
                      }
                    }
                  },
                  "dataLabelNotUnique": {
                    "summary": "같은 요청에 같은 체크박스 그룹을 두 번 지정",
                    "value": {
                      "instance": "/documents",
                      "type": "DataLabelNotUniqueException",
                      "title": "Data label must be unique",
                      "detail": "Data label '수신채널' is duplicated",
                      "data": {
                        "dataLabel": "수신채널"
                      }
                    }
                  },
                  "oneClickTargetNotAllowed": {
                    "summary": "한 번에 선택 체크박스를 규칙으로 숨김",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleOneClickTargetNotAllowedException",
                      "title": "One-click checkbox cannot be hidden by a conditional rule",
                      "detail": "'약관동의' contains checkbox '전체동의' with one-click selection enabled and cannot be used as the target of a conditional rule.",
                      "data": {
                        "targetDataLabel": "약관동의",
                        "oneClickFieldDataLabel": "전체동의",
                        "groupDataLabel": "약관동의"
                      }
                    }
                  },
                  "graphSizeExceeded": {
                    "summary": "검증 가능한 규칙 그래프 크기 초과",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleGraphSizeExceededException",
                      "title": "Conditional rule graph is too large to validate",
                      "detail": "Conditional rule graph carries 4001 nodes but only 4000 can be traversed.",
                      "data": {
                        "currentCount": 4001,
                        "maxCount": 4000
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Basic": []
          },
          {
            "Bearer": []
          }
        ],
        "summary": "선택한 Revision 내용으로 템플릿 복원",
        "tags": [
          "USER API"
        ]
      }
    }
  },
  "info": {
    "title": "MODUSIGN API",
    "description": "",
    "version": "1.0.0",
    "contact": {}
  },
  "servers": [
    {
      "url": "https://api.modusign.co.kr",
      "description": "production"
    }
  ],
  "components": {
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "Basic": {
        "type": "http",
        "scheme": "basic"
      }
    },
    "schemas": {
      "ConditionalRuleReferenceNotFoundExceptionData": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "조건부 표시 규칙이 조건으로 가리켰으나 문서에 없는 데이터 라벨"
          },
          "groupDataLabel": {
            "type": "string",
            "description": "가리킨 조건이 체크박스 그룹의 멤버일 때 그 그룹의 데이터 라벨. 그렇지 않으면 null",
            "nullable": true
          }
        },
        "required": [
          "dataLabel",
          "groupDataLabel"
        ]
      },
      "ConditionalRuleReferenceNotFoundException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleReferenceNotFoundException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleReferenceNotFoundExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleCycleDetectedExceptionData": {
        "type": "object",
        "properties": {
          "cycle": {
            "description": "순환을 이루는 데이터 라벨 경로. 시작 지점이 마지막에 다시 나타납니다.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "cycle"
        ]
      },
      "ConditionalRuleCycleDetectedException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleCycleDetectedException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleCycleDetectedExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleParticipantScopeViolationExceptionData": {
        "type": "object",
        "properties": {
          "targetDataLabel": {
            "type": "string",
            "description": "규칙을 보유한 대상 입력란의 데이터 라벨"
          },
          "targetParticipantDataLabel": {
            "type": "string",
            "description": "대상 입력란에 할당된 참여자의 데이터 라벨"
          },
          "triggerDataLabel": {
            "type": "string",
            "description": "조건 입력란의 데이터 라벨"
          },
          "triggerParticipantDataLabel": {
            "type": "string",
            "description": "조건 입력란에 할당된 참여자의 데이터 라벨"
          }
        },
        "required": [
          "targetDataLabel",
          "targetParticipantDataLabel",
          "triggerDataLabel",
          "triggerParticipantDataLabel"
        ]
      },
      "ConditionalRuleParticipantScopeViolationException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleParticipantScopeViolationException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleParticipantScopeViolationExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleTargetLimitExceededExceptionData": {
        "type": "object",
        "properties": {
          "triggerDataLabel": {
            "type": "string",
            "description": "상한을 넘긴 규칙의 조건 입력란 데이터 라벨"
          },
          "maxCount": {
            "type": "number",
            "description": "규칙 하나가 가질 수 있는 최대 대상 수"
          },
          "currentCount": {
            "type": "number",
            "description": "현재 대상 수. 체크박스 그룹은 멤버 수와 무관하게 1개로 계수합니다."
          }
        },
        "required": [
          "triggerDataLabel",
          "maxCount",
          "currentCount"
        ]
      },
      "ConditionalRuleTargetLimitExceededException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleTargetLimitExceededException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleTargetLimitExceededExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleTriggerValueNotAllowedExceptionData": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "조건 입력란의 데이터 라벨"
          },
          "groupDataLabel": {
            "type": "string",
            "description": "조건 입력란이 체크박스 그룹 멤버일 때 그 그룹의 데이터 라벨. 그렇지 않으면 null",
            "nullable": true
          },
          "value": {
            "type": "string",
            "description": "규칙이 기대값으로 지정했으나 조건 입력란이 가질 수 없는 값"
          },
          "allowedValues": {
            "description": "조건 입력란이 가질 수 있는 값 목록. 드롭다운은 옵션 값, 체크박스는 TRUE 입니다.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "dataLabel",
          "groupDataLabel",
          "value",
          "allowedValues"
        ]
      },
      "ConditionalRuleTriggerValueNotAllowedException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleTriggerValueNotAllowedException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleTriggerValueNotAllowedExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleCarrierNotAllowedExceptionData": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "자격을 갖추지 못한 입력란·체크박스 그룹의 데이터 라벨"
          },
          "fieldType": {
            "type": "string",
            "description": "해당 입력란의 유형"
          },
          "role": {
            "type": "string",
            "description": "규칙에서 맡으려던 역할",
            "enum": [
              "TRIGGER",
              "TARGET"
            ]
          }
        },
        "required": [
          "dataLabel",
          "fieldType",
          "role"
        ]
      },
      "ConditionalRuleCarrierNotAllowedException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleCarrierNotAllowedException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleCarrierNotAllowedExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleRequesterCarrierNotAllowedExceptionData": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "규칙에 참여할 수 없는 입력란의 데이터 라벨"
          },
          "participantDataLabel": {
            "type": "string",
            "description": "해당 입력란에 할당된 요청자의 데이터 라벨"
          },
          "role": {
            "type": "string",
            "description": "규칙에서 맡으려던 역할",
            "enum": [
              "TRIGGER",
              "TARGET"
            ]
          }
        },
        "required": [
          "dataLabel",
          "participantDataLabel",
          "role"
        ]
      },
      "ConditionalRuleRequesterCarrierNotAllowedException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleRequesterCarrierNotAllowedException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleRequesterCarrierNotAllowedExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "DataLabelNotUniqueExceptionData": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "중복된 데이터 라벨"
          }
        },
        "required": [
          "dataLabel"
        ]
      },
      "DataLabelNotUniqueException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "DataLabelNotUniqueException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/DataLabelNotUniqueExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleOneClickTargetNotAllowedExceptionData": {
        "type": "object",
        "properties": {
          "targetDataLabel": {
            "type": "string",
            "description": "규칙의 대상으로 지정하려 한 입력란·체크박스 그룹의 데이터 라벨"
          },
          "oneClickFieldDataLabel": {
            "type": "string",
            "description": "한 번에 선택이 켜져 있어 충돌을 만든 체크박스의 데이터 라벨"
          },
          "groupDataLabel": {
            "type": "string",
            "description": "충돌 체크박스가 속한 그룹의 데이터 라벨. 그룹에 속하지 않으면 null",
            "nullable": true
          }
        },
        "required": [
          "targetDataLabel",
          "oneClickFieldDataLabel",
          "groupDataLabel"
        ]
      },
      "ConditionalRuleOneClickTargetNotAllowedException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleOneClickTargetNotAllowedException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleOneClickTargetNotAllowedExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleGraphSizeExceededExceptionData": {
        "type": "object",
        "properties": {
          "currentCount": {
            "type": "number",
            "description": "규칙 그래프가 순회해야 하는 노드 수. 입력란과 체크박스 그룹의 합"
          },
          "maxCount": {
            "type": "number",
            "description": "한 번에 순회할 수 있는 최대 노드 수"
          }
        },
        "required": [
          "currentCount",
          "maxCount"
        ]
      },
      "ConditionalRuleGraphSizeExceededException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleGraphSizeExceededException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleGraphSizeExceededExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "PlanAuthorityThrottleExceededDataDto": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "enum": [
              "THROTTLE_EXCEEDED"
            ]
          },
          "throttleName": {
            "type": "string",
            "enum": [
              "TEMPLATE_COUNT",
              "SIGNER_COUNT",
              "ATTACHMENT_REQUEST_COUNT"
            ],
            "description": "상한을 넘은 항목. 보유·요청 수량 상한 목록의 값이며, 권한 목록(`FEATURE_NOT_INCLUDED.features`)과는 다른 목록입니다.",
            "example": "TEMPLATE_COUNT"
          },
          "limit": {
            "type": "integer",
            "minimum": 0,
            "description": "상한"
          },
          "requested": {
            "type": "integer",
            "minimum": 1,
            "description": "검증에 쓴 값. 템플릿은 \"기존 수 + 1\", 첨부·서명자는 이 요청의 개수"
          }
        },
        "required": [
          "reason",
          "throttleName",
          "limit",
          "requested"
        ]
      },
      "PlanAuthorityFeatureNotIncludedDataDto": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "enum": [
              "FEATURE_NOT_INCLUDED"
            ]
          },
          "features": {
            "type": "array",
            "uniqueItems": true,
            "minItems": 1,
            "description": "요금제에 없는 기능 가운데 공개하는 것. 값은 권한 목록이며, 수량 상한 목록(`THROTTLE_EXCEEDED`의 `throttleName`)과는 다른 목록입니다. 공개하지 않는 기능만 빠졌으면 `data` 없이 403 `Forbidden`으로 응답합니다",
            "example": [
              "ADVANCED_FIELDS"
            ],
            "items": {
              "type": "string",
              "enum": [
                "DOCUMENT",
                "TEMPLATE",
                "ADVANCED_FIELDS",
                "SIGNATURE_FIELD_ONECLICK",
                "TEMPLATE_MERGING",
                "PREFILLED_VALUE"
              ]
            }
          }
        },
        "required": [
          "reason",
          "features"
        ]
      },
      "PlanAuthoritySubscriptionInactiveDataDto": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "enum": [
              "SUBSCRIPTION_INACTIVE"
            ]
          }
        },
        "required": [
          "reason"
        ]
      },
      "PlanAuthoritySubscriptionNotFoundDataDto": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "enum": [
              "SUBSCRIPTION_NOT_FOUND"
            ]
          }
        },
        "required": [
          "reason"
        ]
      },
      "PlanAuthorityErrorResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ForbiddenException",
              "UsageLimitExceededException"
            ],
            "description": "`UsageLimitExceededException`은 기간 누적 사용량 초과에만 쓰이며 `data`가 없습니다."
          },
          "title": {
            "type": "string",
            "enum": [
              "Forbidden",
              "Usage limit exceeded"
            ]
          },
          "instance": {
            "type": "string",
            "description": "오류가 발생한 API 경로",
            "example": "/documents/request-with-template"
          },
          "data": {
            "description": "거절 원인. `reason`으로 구분하며, 사용량 초과(`UsageLimitExceededException`)와 원인을 알 수 없는 403에는 없습니다.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PlanAuthorityThrottleExceededDataDto"
              },
              {
                "$ref": "#/components/schemas/PlanAuthorityFeatureNotIncludedDataDto"
              },
              {
                "$ref": "#/components/schemas/PlanAuthoritySubscriptionInactiveDataDto"
              },
              {
                "$ref": "#/components/schemas/PlanAuthoritySubscriptionNotFoundDataDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "title",
          "instance"
        ]
      },
      "IntegritySealPosition": {
        "type": "string",
        "enum": [
          "TOP_LEFT",
          "TOP_RIGHT",
          "BOTTOM_LEFT",
          "BOTTOM_RIGHT"
        ],
        "description": "진본 증명 도장 위치"
      },
      "MetadataInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "메타데이터 키"
          },
          "value": {
            "type": "string",
            "description": "메타데이터 값"
          }
        },
        "required": [
          "key",
          "value"
        ]
      },
      "PositionInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number",
            "description": "입력란의 가로 좌표"
          },
          "y": {
            "type": "number",
            "description": "입력란의 세로 좌표"
          },
          "page": {
            "type": "integer",
            "description": "입력란이 위치할 페이지"
          }
        },
        "required": [
          "x",
          "y",
          "page"
        ]
      },
      "SizeInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "width": {
            "type": "number",
            "description": "입력란의 너비"
          },
          "height": {
            "type": "number",
            "description": "입력란의 높이"
          }
        },
        "required": [
          "width",
          "height"
        ]
      },
      "TextStyleInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "size": {
            "type": "integer",
            "description": "텍스트 크기"
          },
          "font": {
            "type": "string",
            "description": "텍스트 글자체"
          },
          "align": {
            "type": "string",
            "description": "텍스트 정렬"
          }
        },
        "required": [
          "size",
          "font",
          "align"
        ]
      },
      "TextRequesterInputInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "요청자 입력 타입 (예시 값으로 고정되어 있습니다)",
            "example": "TEXT"
          },
          "position": {
            "description": "입력란 위치 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "size": {
            "description": "입력란 크기 정보",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "value": {
            "type": "string",
            "description": "텍스트 박스에 들어갈 내용"
          }
        },
        "required": [
          "dataLabel",
          "type",
          "position",
          "size",
          "textStyle",
          "value"
        ]
      },
      "CheckboxRequesterInputInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "추가내용 입력의 데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "요청자 입력 타입 (예시 값으로 고정되어 있습니다)",
            "example": "CHECKBOX"
          },
          "position": {
            "description": "추가내용 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "size": {
            "description": "입력란 크기 정보",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "value": {
            "type": "boolean",
            "description": "체크 박스의 체크 여부"
          }
        },
        "required": [
          "dataLabel",
          "type",
          "position",
          "size",
          "value"
        ]
      },
      "ImageInfoInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "downloadUrl": {
            "type": "string",
            "description": "이미지 다운로드 링크 (10분간 유효)"
          }
        },
        "required": [
          "downloadUrl"
        ]
      },
      "ImageRequesterInputInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "추가내용 입력 타입 (예시 값으로 고정되어 있습니다)",
            "example": "IMAGE"
          },
          "position": {
            "description": "추가내용 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "size": {
            "description": "입력란 크기 정보",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "value": {
            "description": "이미지 필드에 삽입될 이미지 정보",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ImageInfoInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "dataLabel",
          "type",
          "position"
        ]
      },
      "DropdownOption": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "드롭다운 옵션 값"
          }
        },
        "required": [
          "value"
        ]
      },
      "DropdownRequesterInputInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "추가내용 입력 타입 (예시 값으로 고정되어 있습니다)",
            "example": "DROPDOWN"
          },
          "position": {
            "description": "추가내용 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "size": {
            "description": "입력란 크기 정보",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "options": {
            "type": "array",
            "description": "드롭다운 옵션",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/DropdownOption"
                }
              ]
            }
          },
          "value": {
            "type": "string",
            "description": "드롭다운 필드에 들어갈 내용"
          }
        },
        "required": [
          "dataLabel",
          "type",
          "position",
          "textStyle",
          "options",
          "value"
        ]
      },
      "NameRequesterInputInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "추가내용 입력 타입 (예시 값으로 고정되어 있습니다)",
            "example": "NAME"
          },
          "position": {
            "description": "추가내용 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "size": {
            "description": "입력란 크기 정보",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "value": {
            "type": "string",
            "description": "이름 필드에 들어갈 내용"
          }
        },
        "required": [
          "dataLabel",
          "type",
          "position",
          "textStyle",
          "value"
        ]
      },
      "ConditionalRuleTriggerInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "조건 입력란의 데이터 라벨 (드롭다운 또는 개별 체크박스)"
          },
          "groupLabel": {
            "type": "string",
            "description": "조건 입력란이 체크박스 그룹에 속할 때 그 그룹의 라벨. 드롭다운이 조건이면 null 입니다.",
            "nullable": true
          },
          "value": {
            "type": "string",
            "description": "조건이 성립하는 값. 드롭다운은 옵션 값, 체크박스는 TRUE(선택됨)만 허용합니다.",
            "example": "TRUE"
          }
        },
        "required": [
          "dataLabel",
          "groupLabel",
          "value"
        ]
      },
      "ConditionalRuleInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "triggers": {
            "description": "규칙을 성립시키는 조건 목록",
            "minItems": 1,
            "maxItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConditionalRuleTriggerInTemplateResponseDto"
            }
          }
        },
        "required": [
          "triggers"
        ]
      },
      "SignatureFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)",
            "example": "SIGNATURE"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부(true 고정)",
            "example": true
          },
          "signatureTypes": {
            "type": "array",
            "description": "가능한 참여 종류",
            "items": {
              "type": "string",
              "enum": [
                "SIGN",
                "STAMP"
              ]
            }
          },
          "allowedGenerationMethods": {
            "type": "array",
            "description": "참여 생성 방식",
            "items": {
              "type": "string",
              "enum": [
                "STAMP_IMAGE",
                "SIGN_DRAWING"
              ]
            }
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "enableOneClick": {
            "type": "boolean",
            "description": "한번에 서명 활성화 여부",
            "default": false
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙. 조건이 성립할 때만 서명자에게 보입니다. 규칙이 없으면 응답에서 빠집니다.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "signatureTypes",
          "allowedGenerationMethods",
          "position",
          "dataLabel"
        ]
      },
      "PhoneNumberFormatInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "휴대폰 번호 입력 형식 타입",
            "enum": [
              "PHONE_NUMBER"
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "BankAccountNumberFormatInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "계좌 번호 입력 형식 타입",
            "enum": [
              "BANK_ACCOUNT_NUMBER"
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "BizNumberFormatInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "사업자 등록 번호 입력 형식 타입",
            "enum": [
              "BIZ_NUMBER"
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "RegexFormatInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "정규 표현식 입력 형식 타입",
            "enum": [
              "REGEX"
            ]
          },
          "name": {
            "type": "string",
            "description": "정규식 형식 이름 (예: 휴대폰)",
            "minLength": 1,
            "maxLength": 50
          },
          "pattern": {
            "type": "string",
            "description": "정규식 패턴 (최대 50자)",
            "minLength": 1,
            "maxLength": 50
          }
        },
        "required": [
          "type",
          "name",
          "pattern"
        ]
      },
      "TextFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "TEXT",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨",
            "nullable": true
          },
          "format": {
            "description": "입력 형식 (정규 표현식 등)",
            "oneOf": [
              {
                "title": "PHONE_NUMBER",
                "$ref": "#/components/schemas/PhoneNumberFormatInTemplateResponseDto"
              },
              {
                "title": "BANK_ACCOUNT_NUMBER",
                "$ref": "#/components/schemas/BankAccountNumberFormatInTemplateResponseDto"
              },
              {
                "title": "BIZ_NUMBER",
                "$ref": "#/components/schemas/BizNumberFormatInTemplateResponseDto"
              },
              {
                "title": "REGEX",
                "$ref": "#/components/schemas/RegexFormatInTemplateResponseDto"
              }
            ],
            "nullable": true
          },
          "prefilledValue": {
            "type": "string",
            "description": "사전 입력값",
            "nullable": true
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "dataLabel",
          "groupLabel"
        ]
      },
      "CheckboxFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "CHECKBOX",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란 그룹 라벨(체크박스 그룹에 속할 경우)"
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "valueDescription": {
            "type": "string",
            "description": "체크박스 내용, 체크박스를 호버하거나 한번에 선택할때 서명자에게 노출됩니다.",
            "minLength": 1,
            "maxLength": 40
          },
          "enableOneClick": {
            "type": "boolean",
            "description": "체크박스를 한번에 선택(체크) 할 수 있는 여부, 문서 서명시 활성화된 체크박스는 서명자가 확인 후 한번에 체크할 수 있습니다.",
            "default": false
          },
          "prefilledValue": {
            "type": "string",
            "description": "사전 입력값",
            "nullable": true
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "groupLabel",
          "dataLabel",
          "enableOneClick"
        ]
      },
      "DropdownTextStyleInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "size": {
            "type": "integer",
            "description": "텍스트 크기"
          },
          "font": {
            "type": "string",
            "description": "텍스트 글자체"
          },
          "align": {
            "type": "string",
            "description": "텍스트 정렬"
          }
        },
        "required": [
          "size",
          "font",
          "align"
        ]
      },
      "DropdownFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "DROPDOWN",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/DropdownTextStyleInTemplateResponseDto"
              }
            ]
          },
          "options": {
            "type": "array",
            "description": "드롭다운 옵션",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/DropdownOption"
                }
              ]
            }
          },
          "defaultInputValue": {
            "type": "string",
            "description": "기본 입력 값",
            "nullable": true
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "prefilledValue": {
            "type": "string",
            "description": "사전 입력값",
            "nullable": true
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "options",
          "defaultInputValue",
          "dataLabel"
        ]
      },
      "NameFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "NAME",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨"
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "dataLabel",
          "groupLabel"
        ]
      },
      "CompanyNameFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "COMPANY_NAME",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨"
          },
          "prefilledValue": {
            "type": "string",
            "description": "사전 입력값",
            "nullable": true
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "dataLabel",
          "groupLabel"
        ]
      },
      "DateFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "DATE",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "displayFormat": {
            "type": "string",
            "description": "날짜 표기 형식"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨"
          },
          "prefilledValue": {
            "type": "string",
            "description": "사전 입력값",
            "nullable": true
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "dataLabel",
          "displayFormat",
          "groupLabel"
        ]
      },
      "SigningDateFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "SIGNING_DATE",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "displayFormat": {
            "type": "string",
            "description": "날짜 표기 형식"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨"
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "dataLabel",
          "displayFormat",
          "groupLabel"
        ]
      },
      "AddressPrefilledValueInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "address1": {
            "type": "string",
            "description": "기본 주소"
          },
          "address2": {
            "type": "string",
            "description": "상세 주소",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "시군구",
            "nullable": true
          },
          "province": {
            "type": "string",
            "description": "도시"
          },
          "zip": {
            "type": "string",
            "description": "우편번호"
          },
          "country": {
            "type": "string",
            "description": "나라",
            "enum": [
              "KR"
            ]
          }
        },
        "required": [
          "address1",
          "province",
          "zip",
          "country"
        ]
      },
      "AddressFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "ADDRESS",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨"
          },
          "prefilledValue": {
            "description": "사전 입력값",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressPrefilledValueInTemplateResponseDto"
              }
            ]
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "dataLabel",
          "groupLabel"
        ]
      },
      "DeprecatedCheckboxFieldGroupInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "groupLabel": {
            "type": "string",
            "description": "체크박스 그룹 라벨",
            "deprecated": true
          },
          "minCheckRequired": {
            "type": "number",
            "description": "최소 선택 개수. 현재는 0 또는 1만 지원합니다."
          },
          "maxCheckLimit": {
            "type": "number",
            "description": "최대 선택 개수. 현재는 1또는 null만 지원합니다. null은 최대 개수까지 선택가능함을 뜻합니다.",
            "nullable": true
          }
        },
        "required": [
          "groupLabel",
          "minCheckRequired",
          "maxCheckLimit"
        ]
      },
      "CheckboxFieldGroupInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "CHECKBOX_GROUP",
            "description": "입력란 그룹 종류 (예시 값으로 고정되어 있습니다)"
          },
          "groupLabel": {
            "type": "string",
            "description": "체크박스 그룹 라벨"
          },
          "minCheckRequired": {
            "type": "number",
            "description": "최소 선택 개수. 현재는 0 또는 1만 지원합니다."
          },
          "maxCheckLimit": {
            "type": "number",
            "description": "최대 선택 개수. 현재는 1또는 null만 지원합니다. null은 최대 개수까지 선택가능함을 뜻합니다.",
            "nullable": true
          },
          "conditionalRule": {
            "description": "이 입력란 그룹을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "groupLabel",
          "minCheckRequired",
          "maxCheckLimit"
        ]
      },
      "AutofillFieldGroupInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "AUTOFILL_GROUP",
            "description": "입력란 그룹 종류 (예시 값으로 고정되어 있습니다)"
          },
          "groupLabel": {
            "type": "string",
            "description": "동기화 그룹 라벨"
          }
        },
        "required": [
          "type",
          "groupLabel"
        ]
      },
      "ImageFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "IMAGE",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "dataLabel"
        ]
      },
      "HandwritingFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "HANDWRITING",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨",
            "nullable": true
          },
          "traceText": {
            "type": "string",
            "description": "따라 쓸 문구"
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "dataLabel",
          "traceText"
        ]
      },
      "SigningMethodInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "EMAIL",
              "KAKAO",
              "SECURE_LINK",
              "IN_PERSON"
            ],
            "description": "참여 수단 종류"
          },
          "value": {
            "type": "string",
            "description": "참여자의 참여 수단 (이메일 또는 휴대전화번호)"
          }
        },
        "required": [
          "type",
          "value"
        ]
      },
      "AttachmentRequestInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "첨부파일 종류"
          },
          "message": {
            "type": "string",
            "description": "추가 안내 사항",
            "nullable": true
          },
          "required": {
            "type": "boolean",
            "description": "필수 여부"
          },
          "dataLabel": {
            "type": "string",
            "description": "첨부파일의 데이터 라벨"
          }
        },
        "required": [
          "name",
          "required",
          "dataLabel"
        ]
      },
      "ParticipantPasswordInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "추가 인증 사용 여부"
          }
        },
        "required": [
          "enabled"
        ]
      },
      "ParticipantMobileIdentificationInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "추가 인증 사용 여부"
          }
        },
        "required": [
          "enabled"
        ]
      },
      "ParticipantDCertInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "추가 인증 사용 여부"
          }
        },
        "required": [
          "enabled"
        ]
      },
      "VerificationInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "password": {
            "description": "추가인증 - 패스워드",
            "allOf": [
              {
                "$ref": "#/components/schemas/ParticipantPasswordInTemplateResponseDto"
              }
            ]
          },
          "mobileIdentification": {
            "description": "추가인증 - 휴대폰 본인 인증",
            "allOf": [
              {
                "$ref": "#/components/schemas/ParticipantMobileIdentificationInTemplateResponseDto"
              }
            ]
          },
          "dCert": {
            "description": "추가인증 - 법인 공동인증서 인증",
            "allOf": [
              {
                "$ref": "#/components/schemas/ParticipantDCertInTemplateResponseDto"
              }
            ]
          }
        }
      },
      "SignerInParticipantTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "참여자 타입",
            "enum": [
              "SIGNER"
            ]
          },
          "role": {
            "type": "string",
            "description": "참여자의 역할"
          },
          "signingOrder": {
            "type": "integer",
            "description": "참여자의 서명/열람 순서"
          },
          "name": {
            "type": "string",
            "description": "참여자의 이름 (공란일 수 있음)"
          },
          "signingMethod": {
            "description": "참여자의 참여 수단 정보 (공란일 수 있음)",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SigningMethodInTemplateResponseDto"
              }
            ]
          },
          "attachmentRequests": {
            "description": "첨부파일 요청 정보",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentRequestInTemplateResponseDto"
            }
          },
          "fields": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "SIGNATURE",
                  "$ref": "#/components/schemas/SignatureFieldInTemplateResponseDto"
                },
                {
                  "title": "TEXT",
                  "$ref": "#/components/schemas/TextFieldInTemplateResponseDto"
                },
                {
                  "title": "CHECKBOX",
                  "$ref": "#/components/schemas/CheckboxFieldInTemplateResponseDto"
                },
                {
                  "title": "DROPDOWN",
                  "$ref": "#/components/schemas/DropdownFieldInTemplateResponseDto"
                },
                {
                  "title": "NAME",
                  "$ref": "#/components/schemas/NameFieldInTemplateResponseDto"
                },
                {
                  "title": "COMPANY_NAME",
                  "$ref": "#/components/schemas/CompanyNameFieldInTemplateResponseDto"
                },
                {
                  "title": "ADDRESS",
                  "$ref": "#/components/schemas/AddressFieldInTemplateResponseDto"
                },
                {
                  "title": "DATE",
                  "$ref": "#/components/schemas/DateFieldInTemplateResponseDto"
                },
                {
                  "title": "SIGNING_DATE",
                  "$ref": "#/components/schemas/SigningDateFieldInTemplateResponseDto"
                },
                {
                  "title": "IMAGE",
                  "$ref": "#/components/schemas/ImageFieldInTemplateResponseDto"
                },
                {
                  "title": "HANDWRITING",
                  "$ref": "#/components/schemas/HandwritingFieldInTemplateResponseDto"
                }
              ]
            },
            "description": "참여자 입력란"
          },
          "fieldGroups": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "CHECKBOX_GROUP",
                  "$ref": "#/components/schemas/CheckboxFieldGroupInTemplateResponseDto"
                },
                {
                  "title": "AUTOFILL_GROUP",
                  "$ref": "#/components/schemas/AutofillFieldGroupInTemplateResponseDto"
                }
              ]
            },
            "description": "참여자 입력란 그룹"
          },
          "checkboxFieldGroups": {
            "description": "체크박스 그룹 (deprecated 되었으며 fieldGroups를 대신 활용해주세요)",
            "deprecated": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeprecatedCheckboxFieldGroupInTemplateResponseDto"
            }
          },
          "verification": {
            "description": "참여자 추가 인증",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/VerificationInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "role",
          "signingOrder",
          "attachmentRequests",
          "fields",
          "fieldGroups",
          "checkboxFieldGroups",
          "verification"
        ]
      },
      "ViewerInParticipantTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "참여자 타입",
            "enum": [
              "VIEWER"
            ]
          },
          "role": {
            "type": "string",
            "description": "참여자의 역할"
          },
          "signingOrder": {
            "type": "integer",
            "description": "참여자의 서명/열람 순서"
          },
          "name": {
            "type": "string",
            "description": "참여자의 이름 (공란일 수 있음)"
          },
          "signingMethod": {
            "description": "참여자의 참여 수단 정보 (공란일 수 있음)",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SigningMethodInTemplateResponseDto"
              }
            ]
          },
          "attachmentRequests": {
            "description": "첨부파일 요청 정보",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentRequestInTemplateResponseDto"
            }
          },
          "fields": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "SIGNATURE",
                  "$ref": "#/components/schemas/SignatureFieldInTemplateResponseDto"
                },
                {
                  "title": "TEXT",
                  "$ref": "#/components/schemas/TextFieldInTemplateResponseDto"
                },
                {
                  "title": "CHECKBOX",
                  "$ref": "#/components/schemas/CheckboxFieldInTemplateResponseDto"
                },
                {
                  "title": "DROPDOWN",
                  "$ref": "#/components/schemas/DropdownFieldInTemplateResponseDto"
                },
                {
                  "title": "NAME",
                  "$ref": "#/components/schemas/NameFieldInTemplateResponseDto"
                },
                {
                  "title": "COMPANY_NAME",
                  "$ref": "#/components/schemas/CompanyNameFieldInTemplateResponseDto"
                },
                {
                  "title": "ADDRESS",
                  "$ref": "#/components/schemas/AddressFieldInTemplateResponseDto"
                },
                {
                  "title": "DATE",
                  "$ref": "#/components/schemas/DateFieldInTemplateResponseDto"
                },
                {
                  "title": "SIGNING_DATE",
                  "$ref": "#/components/schemas/SigningDateFieldInTemplateResponseDto"
                },
                {
                  "title": "IMAGE",
                  "$ref": "#/components/schemas/ImageFieldInTemplateResponseDto"
                },
                {
                  "title": "HANDWRITING",
                  "$ref": "#/components/schemas/HandwritingFieldInTemplateResponseDto"
                }
              ]
            },
            "description": "참여자 입력란"
          },
          "fieldGroups": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "CHECKBOX_GROUP",
                  "$ref": "#/components/schemas/CheckboxFieldGroupInTemplateResponseDto"
                },
                {
                  "title": "AUTOFILL_GROUP",
                  "$ref": "#/components/schemas/AutofillFieldGroupInTemplateResponseDto"
                }
              ]
            },
            "description": "참여자 입력란 그룹"
          },
          "checkboxFieldGroups": {
            "description": "체크박스 그룹 (deprecated 되었으며 fieldGroups를 대신 활용해주세요)",
            "deprecated": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeprecatedCheckboxFieldGroupInTemplateResponseDto"
            }
          },
          "verification": {
            "description": "참여자 추가 인증",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/VerificationInTemplateResponseDto"
              }
            ]
          },
          "manuallyViewing": {
            "type": "boolean",
            "description": "상세 열람 여부"
          }
        },
        "required": [
          "type",
          "role",
          "signingOrder",
          "attachmentRequests",
          "fields",
          "fieldGroups",
          "checkboxFieldGroups",
          "verification",
          "manuallyViewing"
        ]
      },
      "TemplateFileInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "downloadUrl": {
            "type": "string",
            "description": "다운로드 링크(유효시간: 10분)"
          }
        },
        "required": [
          "downloadUrl"
        ]
      },
      "RequesterAttachmentFileInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "파일명"
          },
          "extension": {
            "type": "string",
            "description": "파일 확장자"
          },
          "size": {
            "type": "number",
            "description": "파일 크기 (Byte)"
          },
          "downloadUrl": {
            "type": "string",
            "description": "다운로드 링크(유효시간: 10분)"
          }
        },
        "required": [
          "name",
          "extension",
          "size",
          "downloadUrl"
        ]
      },
      "RequesterAttachmentInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "요청자 첨부파일의 데이터 라벨"
          },
          "name": {
            "type": "string",
            "description": "첨부파일 종류"
          },
          "file": {
            "description": "첨부된 파일",
            "example": {
              "name": "첨부파일_1",
              "extension": ".pdf",
              "size": 10240,
              "downloadUrl": "https://app.modusign.co.kr"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/RequesterAttachmentFileInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "dataLabel",
          "name",
          "file"
        ]
      },
      "DocumentLabelInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "라벨 ID"
          },
          "name": {
            "type": "string",
            "description": "라벨 이름"
          },
          "description": {
            "type": "string",
            "description": "라벨의 설명",
            "nullable": true
          }
        },
        "required": [
          "id",
          "name",
          "description"
        ]
      },
      "CarbonCopyInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "string",
            "description": "참조자 연락처"
          },
          "locale": {
            "type": "string",
            "description": "참조자 언어",
            "enum": [
              "ko",
              "en",
              "zh-CN",
              "ja",
              "vi",
              "fr"
            ]
          }
        },
        "required": [
          "contact",
          "locale"
        ]
      },
      "IntegritySealInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "진본 증명 도장 활성화 여부",
            "default": false
          },
          "position": {
            "description": "진본 증명 도장 위치",
            "nullable": true,
            "example": "TOP_RIGHT",
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegritySealPosition"
              }
            ]
          }
        },
        "required": [
          "enabled",
          "position"
        ]
      },
      "DocumentSealInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "integritySeal": {
            "description": "진본 증명 도장 설정",
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegritySealInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "integritySeal"
        ]
      },
      "UnrestorablePropertyDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "복원할 수 없는 속성의 종류. `APPROVAL_PROCESS`=결재선, `DOCUMENT_LABEL`=문서 라벨",
            "enum": [
              "APPROVAL_PROCESS",
              "DOCUMENT_LABEL"
            ]
          },
          "id": {
            "type": "string",
            "description": "이미 삭제되어 복원할 수 없는 결재선/문서 라벨의 ID"
          }
        },
        "required": [
          "type",
          "id"
        ]
      },
      "RestoreTemplateRevisionResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "템플릿의 ID"
          },
          "metadatas": {
            "description": "메타데이터 리스트",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataInTemplateResponseDto"
            }
          },
          "title": {
            "type": "string",
            "description": "템플릿 제목"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string",
            "description": "템플릿 생성 시간"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string",
            "description": "템플릿 마지막 업데이트 시간"
          },
          "file": {
            "description": "템플릿 PDF 파일 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/TemplateFileInTemplateResponseDto"
              }
            ]
          },
          "requesterInputs": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "TEXT",
                  "$ref": "#/components/schemas/TextRequesterInputInTemplateResponseDto"
                },
                {
                  "title": "CHECKBOX",
                  "$ref": "#/components/schemas/CheckboxRequesterInputInTemplateResponseDto"
                },
                {
                  "title": "IMAGE",
                  "$ref": "#/components/schemas/ImageRequesterInputInTemplateResponseDto"
                },
                {
                  "title": "DROPDOWN",
                  "$ref": "#/components/schemas/DropdownRequesterInputInTemplateResponseDto"
                },
                {
                  "title": "NAME",
                  "$ref": "#/components/schemas/NameRequesterInputInTemplateResponseDto"
                }
              ]
            },
            "description": "템플릿에 적용된 추가내용 입력"
          },
          "requesterAttachments": {
            "description": "설정된 요청자 첨부파일 정보",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequesterAttachmentInTemplateResponseDto"
            }
          },
          "participants": {
            "type": "array",
            "description": "설정된 참여자 정보",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/SignerInParticipantTemplateResponseDto",
                  "title": "서명자 (SIGNER)",
                  "description": "서명자"
                },
                {
                  "$ref": "#/components/schemas/ViewerInParticipantTemplateResponseDto",
                  "title": "열람자 (VIEWER)",
                  "description": "열람자"
                }
              ]
            }
          },
          "documentLabels": {
            "description": "해당 템플릿으로 참여 요청 시 자동으로 적용될 라벨 목록",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentLabelInTemplateResponseDto"
            }
          },
          "requesterEditable": {
            "type": "boolean",
            "description": "템플릿으로 서명 요청 시 문서의 내용이 변경 가능한 여부 (false 인 경우 기본적인 발송 설정을 제외한, 서명자 필드와 같은 데이터를 수정하여 발송할 수 없습니다)",
            "example": true
          },
          "carbonCopies": {
            "description": "참조자 정보",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarbonCopyInTemplateResponseDto"
            }
          },
          "seal": {
            "description": "문서 봉인 설정 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentSealInTemplateResponseDto"
              }
            ]
          },
          "latestRevisionId": {
            "type": "string",
            "description": "복원으로 새로 생성된 Revision의 ID"
          },
          "unrestorableProperties": {
            "description": "복원 시점에 이미 삭제되어 함께 복원되지 못한 결재선/문서 라벨 목록. 빈 배열이면 모든 속성이 정상 복원되었음을 의미합니다.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnrestorablePropertyDto"
            }
          }
        },
        "required": [
          "id",
          "metadatas",
          "title",
          "createdAt",
          "updatedAt",
          "requesterInputs",
          "requesterAttachments",
          "participants",
          "documentLabels",
          "requesterEditable",
          "carbonCopies",
          "seal",
          "latestRevisionId",
          "unrestorableProperties"
        ]
      }
    }
  }
}
```