diff --git a/src/main/java/com/eactive/apim/portal/djb/apistatus/incident/entity/IncidentKind.java b/src/main/java/com/eactive/apim/portal/djb/apistatus/incident/entity/IncidentKind.java index 7880108..af821cd 100644 --- a/src/main/java/com/eactive/apim/portal/djb/apistatus/incident/entity/IncidentKind.java +++ b/src/main/java/com/eactive/apim/portal/djb/apistatus/incident/entity/IncidentKind.java @@ -1,6 +1,39 @@ package com.eactive.apim.portal.djb.apistatus.incident.entity; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; + +/** + * 이슈 종류. + * + *
{@link #INCIDENT} 와 {@link #DELAY} 는 둘 다 서비스 저하이며 {@code STATE} 를 가진다. + * {@link #MAINTENANCE} 만 계획된 작업이라 {@code STATE} 가 없다 (ADR-F15).
+ * + *{@link #DELAY} 는 자동 탐지(응답시간 임계 초과) 전용이며 공지(PTL_NOTICE)를 만들지 않는다. + * 관리자 검수 화면이 없고 복구 이벤트({@code DELAY_END}/{@code ERROR_END})로 자동 종결된다.
+ */ public enum IncidentKind { + + /** 장애 */ INCIDENT, - MAINTENANCE + + /** 지연 - 자동 탐지 전용, 연결 공지 없음 */ + DELAY, + + /** 점검 */ + MAINTENANCE; + + /** + * 서비스 저하로 취급하는 종류 (장애 + 지연). + * + *가동률 차감, 복구 처리, 진행 중 이슈 조회의 대상이다. 점검은 계획된 작업이라 제외된다.
+ */ + public static final Collection{@code detectedBy} 로 등록 주체를 한정한다. 자동 탐지는 자동 등록 건에만 영향 API 를 덧붙여야 * 관리자가 직접 작성한 장애 공지의 내용이 바뀌지 않는다.
+ * + *지연(DELAY)이 장애(INCIDENT)로 번지는 경우가 있어 종류는 복수로 받는다.
*/ @Query("SELECT DISTINCT i FROM DjbApistatusIncident i, DjbApistatusIncidentApi a" + " WHERE a.incidentId = i.incidentId" - + " AND i.kind = :kind" + + " AND i.kind IN :kinds" + " AND i.detectedBy = :detectedBy" + " AND i.state NOT IN :excludedStates" + " AND a.apiId IN :apiIds" + " ORDER BY i.startedAt DESC") - List