배치 탐지 시나리오 복원

지정한 버전의 스냅샷으로 배치 탐지 시나리오를 되돌립니다. 변경 이력 목록 조회 → 변경 이력 조회로 복원 대상 버전을 식별한 뒤 이 API를 호출합니다. 복원이 성공하면 해당 시점의 구성이 현재 시나리오에 적용되며 새 버전이 자동으로 생성됩니다. 참조 객체(스키마, 티켓 분류, 수집기 등)가 누락되었거나 이름이 중복되는 등 유효성 검증에 실패하면 시나리오는 변경되지 않고 실패 사유가 failures 배열로 반환됩니다.

필요 권한

관리자 이상의 계정으로 이용할 수 있습니다.

HTTP 요청

POST /api/sonar/batch-rules/:guid/versions/:version/restore
cURL 예시
curl -H "Authorization: Bearer <API_KEY>" \
     -X POST \
     https://HOSTNAME/api/sonar/batch-rules/3b05608f-8dd0-4218-9d6d-391515b6280d/versions/2/restore
요청 매개변수
경로 매개변수
타입설명비고
guid문자열배치 탐지 시나리오 GUID36자
version32비트 정수복원할 스냅샷 버전 번호

정상 응답

{
  "result": true,
  "failures": []
}
  • result (불리언): 복원 성공 여부. 성공 시 true.
  • failures (배열): 유효성 검증 실패 항목 목록. 성공 시 빈 배열.

유효성 검증 실패 응답

복원하려는 스냅샷이 현재 시스템 상태와 일치하지 않을 경우 (예: 참조하던 스키마, 티켓 분류, 수집기, 알람 그룹 등이 삭제된 경우 또는 이름이 중복되는 경우) HTTP 상태 코드 200 응답이지만 resultfalse로 반환되며, failures 배열에 실패 사유가 포함됩니다.

{
  "result": false,
  "error_msg": "validation-falied",
  "failures": [
    {
      "field": "schema",
      "value": "edr-process",
      "reason": "not-found"
    }
  ]
}
  • result (불리언): 복원 실패 시 false
  • error_msg (문자열): 오류 식별자. 항상 validation-falied (소스 코드의 표기 그대로).
  • failures (배열): 유효성 검증 실패 항목 목록
    • field (문자열): 검증에 실패한 필드 이름. schema, ticket_repo, address_group, rule_category, audit_category, reviewer, auditor, alarm_group, logger, logger_model, ticket_assignee, name 중 하나.
    • value (문자열): 검증에 실패한 필드의 값
    • reason (문자열): 실패 사유. not-found (참조 객체가 존재하지 않음) 또는 duplicate (이름이 다른 시나리오와 중복) 중 하나.

오류 응답

매개변수 누락

HTTP 상태 코드 400 응답

{
  "error_code": "null-argument",
  "error_msg": "version should be not null"
}
식별자가 GUID 형식이 아닌 경우

HTTP 상태 코드 400 응답

{
  "error_code": "invalid-param-type",
  "error_msg": "guid should be guid type."
}
지정한 시나리오가 존재하지 않는 경우

HTTP 상태 코드 500 응답

{
  "error_code": "illegal-state",
  "error_msg": "batch rule not found: 3b05608f-8dd0-4218-9d6d-391515b6280d"
}
지정한 버전의 스냅샷이 존재하지 않는 경우

HTTP 상태 코드 500 응답

{
  "error_code": "illegal-state",
  "error_msg": "batch rule snapshot not found: 3b05608f-8dd0-4218-9d6d-391515b6280d v9"
}
권한이 없는 경우

HTTP 상태 코드 500 응답

{
  "error_code": "illegal-state",
  "error_msg": "no-permission"
}