Resource Watcher에 RESTful API를 호출하여 이벤트 및 리소스들의 상태 변경에 따른 알림을 받도록 설정할 수 있습니다.
RESTful API를 사용하려면 먼저 User Access Key와 Secret Access Key를 발급받아야 합니다.
User Access Key와 Secret Access Key는 API 보안 설정에서 발급받을 수 있습니다.
콘솔 우측 상단의 계정에 마우스 포인터를 올리면 표시되는 드롭다운 메뉴에서 API 보안 설정을 선택한 뒤 User Access Key ID 생성을 클릭합니다.
보안을 위해 User Access Key와 Secret Access Key를 모두 생성하는 것을 권장합니다.
RESTful API를 사용하려면 Appkey가 필요합니다.
콘솔 우측의 URL & Appkey를 클릭해 발급된 키 정보를 확인할 수 있습니다.
모든 API 요청에 대해 HTTP 응답 코드는 200으로 응답합니다.
자세한 응답 결과는 Response Body의 header 항목을 참고합니다.
Key | Type | Description |
---|---|---|
header | Header | 응답 헤더 |
Key | Type | Description |
---|---|---|
isSuccessful | boolean | 성공 여부(true, false) |
resultCode | int | 응답 코드. 성공 시 0, 실패 시 오류 코드 반환 |
resultMessage | String | 응답 메시지. 성공 시 "SUCCESS", 실패 시 오류 메시지 반환 |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
[기본 정보]
Method | URI |
---|---|
POST | /resource-watcher/v2.0/appkeys/{appKey}/event-alarms |
권한 |
---|
ResourceWatcher:Alarms.Create |
리소스에서 발생하는 이벤트에 대한 알림을 설정할 수 있습니다.
[Request Header]
Key | Value |
---|---|
X-TC-AUTHENTICATION-ID | 콘솔에서 발급받은 User Access Key |
X-TC-AUTHENTICATION-SECRET | 콘솔에서 발급받은 Secret Access Key |
[Path Variable]
Key | Value |
---|---|
appKey | 콘솔에서 발급받은 Appkey |
Key | Type | Required | Description |
---|---|---|---|
alarm | Alarm | Yes | 알림 정보 |
alarmTargets | AlarmTarget[] | Yes | 알림 수신 대상 정보 |
events | Event[] | No | 알림 대상 이벤트 목록 발생하는 모든 이벤트에 대해 수신을 원할 경우 설정하지 않음. |
target | Target | No | 대상 리소스 정보 리소스 관계없이 이벤트 수신을 원할 경우 설정하지 않음. |
Key | Type | Required | Description |
---|---|---|---|
alarmName | String | Yes | 알림 이름 최대 255자까지 등록 가능 |
description | String | No | 알림 설명 최대 1,000자까지 등록 가능 |
Key | Type | Required | Description |
---|---|---|---|
alarmTargetTypeCode | String | Yes | 알림 대상 타입 코드 <종류> 1. UUID: 단일 조직 멤버 대상(NHN Cloud 회원, IAM 멤버) 2. ROLE: 조직 역할, 프로젝트 역할 그룹, 프로젝트 역할 3. ALARM_KEY: 조직 알림 수신 그룹, 프로젝트 알림 수신 그룹 4. WEBHOOK: 웹훅 |
alarmTarget | String | No | 알림 대상 정보 <타입별 설정 값> 1. UUID: 멤버 UUID 2. ROLE: 역할 ID(예. ADMIN) 3. ALARM_KEY: 알림 수신 그룹 ID 4. WEBHOOK: 입력하지 않음 |
emailAlarm | String | No | 이메일 수신 여부 1. Y: 이메일 수신 2. N: 이메일 수신하지 않음 WEBHOOK, ALARM_KEY는 입력하지 않음. |
smsAlarm | String | No | SMS 수신 여부 1. Y: SMS 수신 2. N: SMS 수신하지 않음 WEBHOOK, ALARM_KEY는 입력하지 않음. |
webhookUrl | String | No | 웹훅 URL 주소 http:// 또는 https://로 시작해야 함. 알림 대상 타입 WEBHOOK 설정 시 입력 |
webhookSecret | String | No | 웹훅 비밀 키 알림 대상 타입 WEBHOOK 설정 시 입력 |
Key | Type | Required | Description |
---|---|---|---|
productId | String | Yes | 서비스 ID |
eventId | String | Yes | 이벤트 ID |
productId, eventId 값은 API 가이드 > 3.1 Event 목록 조회 API 응답 값을 참고하세요.
Key | Type | Required | Description |
---|---|---|---|
resourceGroupIds | String[] | No | 리소스 그룹 ID 목록 |
resourceTagIds | Long[] | No | 리소스 태그 ID 목록 |
{
"alarm": {
"alarmName": "",
"description": ""
},
"alarmTargets": [
{
"alarmTarget": "",
"alarmTargetTypeCode": "",
"emailAlarm": "",
"smsAlarm": "",
"webhookSecret": "",
"webhookUrl": ""
}
],
"events": [
{
"eventId": "",
"productId": ""
}
],
"target": {
"resourceGroupIds": [
""
],
"resourceTagIds": [
""
]
}
}
[Response Body]
[기본 정보]
Method | URI |
---|---|
GET | /resource-watcher/v2.0/appkeys/{appKey}/event-alarms/{alarmId} |
권한 |
---|
ResourceWatcher:Alarms.Get |
등록된 알림에 대해 조회합니다.
[Request Header]
Key | Value |
---|---|
X-TC-AUTHENTICATION-ID | 콘솔에서 발급받은 User Access Key |
X-TC-AUTHENTICATION-SECRET | 콘솔에서 발급받은 Secret Access Key |
[Path Variable]
Key | Value |
---|---|
appKey | 콘솔에서 발급받은 Appkey |
alarmId | 조회할 알림의 ID |
[Response Body]
Key | Type | Description |
---|---|---|
alarm | Alarm | 알림 정보 |
alarmTargetAlarmKeys | AlarmTargetAlarmKey[] | 알림 수신 대상 ALARM_KEY 정보 목록 |
alarmTargetMemberProfiles | AlarmTargetMemberProfile[] | 알림 수신 대상 UUID 정보 목록 |
alarmTargetRoles | AlarmTargetRole[] | 알림 수신 대상 ROLE 목록 |
alarmTargets | AlarmTarget[] | 알림 수신 대상 목록 |
events | Event[] | 알림 이벤트 목록 |
target | Target | 대상 리소스 정보 |
Key | Type | Description |
---|---|---|
alarmId | String | 알림 ID |
alarmName | String | 알림 이름 |
alarmRule | AlarmRule | 알림 규칙 상세 정보 |
alarmStatusCode | String | 알림 상태 코드 <종류> 1. STABLE: 활성화 2. DISABLED: 비활성화 3. CLOSED: 삭제 |
appKey | String | Appkey 정보 |
cabAlarmKey | String | 알림 수신 그룹 ID |
delDatetime | Date | 삭제 일시 |
description | String | 알림 설명 |
modDatetime | Date | 수정 일시 |
operatorUuid | String | 최종 수정한 사용자 UUID |
regDatetime | Date | 등록 일시 |
Key | Type | Description |
---|---|---|
alarmRuleId | String | 알림 규칙 ID |
alarmRuleStatusCode | String | 알림 규칙 상태 코드 <종류> 1. STABLE: 활성화 2. DISABLED: 비활성화 3. CLOSED: 삭제 |
alarmRuleName | String | 알림 규칙 이름 |
alarmRuleDescription | String | 알림 규칙 설명 |
resourceTypes | String[] | 알림 규칙이 적용되는 대상 리소스 타입 코드 목록 빈 값이면 전체 리소스 타입을 대상으로 함 String 타입 리스트 |
Key | Type | Description |
---|---|---|
alarmKey | String | 알림 키 |
alarmGroupName | String | 알림 수신 그룹명 |
alarmGroupDesc | String | 알림 수신 그룹 설명 |
Key | Type | Description |
---|---|---|
uuid | String | 멤버 UUID |
memberType | String | 멤버 구분 <종류> 1. TOAST_CLOUD 2. IAM |
name | String | 멤버 이름 |
corporationName | String | 업체 이름 |
String | 멤버 이메일 | |
userId | String | 멤버 ID |
Key | Type | Description |
---|---|---|
type | String | 역할 타입 |
roleId | String | 역할 ID |
roleName | String | 역할명 |
description | String | 역할 설명 |
Key | Type | Description |
---|---|---|
alarmTargetTypeCode | String | 알림 대상 타입 코드 <종류> 1. UUID: 단일 조직 멤버 대상(NHN Cloud 회원, IAM 멤버) 2. ROLE: 조직 역할, 프로젝트 역할 그룹, 프로젝트 역할 3. ALARM_KEY: 조직 알림 수신 그룹, 프로젝트 알림 수신 그룹 4. WEBHOOK: 웹훅 |
alarmTarget | String | 알림 대상 정보 |
emailAlarm | String | 이메일 수신 여부(Y, N) |
smsAlarm | string | SMS 수신 여부(Y, N) |
webhookUrl | string | 웹훅 URL 주소 |
webhookSecret | string | 웹훅 비밀 키 |
Key | Type | Description |
---|---|---|
productId | String | 상품 ID |
eventId | String | 이벤트 ID |
Key | Type | Description |
---|---|---|
resourceGroups | ResourceGroup[] | 리소스 그룹 목록 |
resourceTags | ResourceTag[] | 리소스 태그 목록 |
Key | Type | Description |
---|---|---|
resourceGroupId | String | 리소스 그룹 ID 목록 |
resourceGroupName | String | 리소스 태그 ID 목록 |
Key | Type | Description |
---|---|---|
tagId | Long | 리소스 태그 ID |
tagGroupId | Long | 리소스 태그 그룹 ID |
tagName | String | 리소스 태그 이름 |
resourceTagTypeCode | String | 리소스 태그 유형 코드(DEFAULT, NORMAL) |
regDatetime | Date | 리소스 태그 등록 일시 |
modDatetime | Date | 리소스 태그 수정 일시 |
resourceTagGroup | ResourceTagGroup | 리소스 태그 그룹 |
Key | Type | Description |
---|---|---|
tagGroupId | Long | 리소스 태그 그룹 ID |
tagGroupKey | String | 리소스 태그 키 |
appKey | String | 앱키 |
creationTypeCode | String | 생성 유형(USER, SYSTEM) |
regDatetime | Date | 리소스 태그 그룹 등록 일시 |
modDatetime | Date | 리소스 태그 그룹 수정 일시 |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": ""
},
"alarm": {
"alarmId": "",
"alarmName": "",
"alarmRule": {
"alarmRuleDescription": "",
"alarmRuleId": "",
"alarmRuleName": "",
"alarmRuleStatusCode": "",
"resourceTypes": [
""
]
},
"alarmStatusCode": "",
"appKey": "",
"cabAlarmKey": "",
"delDatetime": "yyyy-MM-ddTHH:mm:SS",
"description": "",
"modDatetime": "yyyy-MM-ddTHH:mm:SS",
"operatorUuid": "",
"regDatetime": "yyyy-MM-ddTHH:mm:SS"
},
"alarmTargetAlarmKeys": [
{
"alarmGroupDesc": "",
"alarmGroupName": "",
"alarmKey": ""
}
],
"alarmTargetMemberProfiles": [
{
"corporationName": "",
"email": "",
"memberType": "",
"name": "",
"userId": "",
"uuid": ""
}
],
"alarmTargetRoles": [
{
"description": "",
"roleId": "",
"roleName": "",
"type": ""
}
],
"alarmTargets": [
{
"alarmTarget": "",
"alarmTargetTypeCode": "",
"emailAlarm": "",
"smsAlarm": "",
"webhookSecret": "",
"webhookUrl": ""
}
],
"events": [
{
"eventId": "",
"productId": ""
}
],
"target": {
"resourceGroups": [
{
"resourceGroupId": "",
"resourceGroupName": ""
}
],
"resourceTags": [
{
"tagId": 0,
"tagGroupId" : 0,
"tagName": "",
"resourceTagTypeCode" : "",
"regDatetime": "yyyy-MM-ddTHH:mm:SS",
"modDatetime": "yyyy-MM-ddTHH:mm:SS",
"resourceTagGroup" : {
"tagGroupId": 0,
"tagGroupKey": "",
"appKey": "",
"creationTypeCode": "",
"regDatetime": "yyyy-MM-ddTHH:mm:SS",
"modDatetime": "yyyy-MM-ddTHH:mm:SS"
}
}
]
}
}
[기본 정보]
Method | URI |
---|---|
POST | /resource-watcher/v2.0/appkeys/{appKey}/event-alarms/search |
권한 |
---|
ResourceWatcher:Alarms.List |
등록한 이벤트 알림 리스트를 조회합니다. - 요청에 검색 조건을 통해 원하는 알림 목록을 조회할 수 있습니다. - 페이징을 지원합니다.
[Request Header]
Key | Value |
---|---|
X-TC-AUTHENTICATION-ID | 콘솔에서 발급받은 User Access Key |
X-TC-AUTHENTICATION-SECRET | 콘솔에서 발급받은 Secret Access Key |
[Path Variable]
Key | Value |
---|---|
appKey | 콘솔에서 발급받은 Appkey |
[Query Parameter]
Key | Value | Required |
---|---|---|
page | 조회할 페이지 번호 Default 값: 0 |
No |
size | 조회할 알림 개수 Default 값: 10 |
No |
sort | 정렬 대상 및 방식 Default 값: modDatetime, DESC |
No |
[Request Body]
Key | Type | Required | Description |
---|---|---|---|
alarmIds | String[] | No | 알림 ID 목록 String 타입 리스트 |
alarmNameAnyLike | String | No | 알림 이름(입력 값을 포함하는 모든 알림 검색) |
alarmRuleIds | String[] | No | 알림 규칙 ID 목록 String 타입 리스트 |
alarmStatusCodes | String[] | No | 알림 상태 String 타입 리스트 Default 값: STABLE, DISABLED <종류> 1. STABLE: 활성화 2. DISABLED: 비활성화 3. CLOSED: 삭제 |
descriptionAnyLike | String | No | 알림 설명(입력 값을 포함하는 모든 알림 검색) |
modDateFrom | Date | No | 마지막 수정 일시 시작 |
modDateTo | Date | No | 마지막 수정 일시 종료 |
operatorUuids | String[] | No | 마지막 수정자 UUID 목록 String 타입 리스트 |
resourceGroupIds | String[] | No | 리소스 그룹 목록 String 타입 리스트 |
{
"alarmIds": [
""
],
"alarmNameAnyLike": "",
"alarmRuleIds": [
""
],
"alarmStatusCodes": [
""
],
"descriptionAnyLike": "",
"modDateFrom": "yyyy-MM-ddTHH:mm:SS",
"modDateTo": "yyyy-MM-ddTHH:mm:SS",
"operatorUuids": [
""
],
"resourceGroupIds": [
""
]
}
[Response Body]
Key | Type | Description |
---|---|---|
alarms | Alarm[] | 알림 목록 |
totalItems | Long | 전체 개수 |
Key | Type | Description |
---|---|---|
alarmId | String | 알림 ID |
alarmName | String | 알림 이름 |
alarmRule | AlarmRule | 알림 규칙 상세 정보 |
alarmStatusCode | String | 알림 상태 코드 <종류> 1. STABLE: 활성화 2. DISABLED: 비활성화 3. CLOSED: 삭제 |
appKey | String | Appkey 정보 |
cabAlarmKey | String | 알림 수신 그룹 ID |
description | String | 알림 설명 |
operatorUuid | String | 최종 수정한 사용자 UUID |
delDatetime | Date | 삭제 일시 |
modDatetime | Date | 수정 일시 |
regDatetime | Date | 등록 일시 |
Key | Type | Description |
---|---|---|
alarmRuleId | String | 알림 규칙 ID |
alarmRuleStatusCode | String | 알림 규칙 상태 코드 <종류> 1. STABLE: 활성화 2. DISABLED: 비활성화 3. CLOSED: 삭제 |
alarmRuleName | String | 알림 규칙 이름 |
alarmRuleDescription | String | 알림 규칙 설명 |
resourceTypes | String[] | 알림 규칙이 적용되는 대상 리소스 타입 코드 목록 빈 값이면 전체 리소스 타입을 대상으로 함 String 타입 리스트 |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": ""
},
"alarms": [
{
"alarmId": "",
"alarmName": "",
"alarmRule": {
"alarmRuleDescription": "",
"alarmRuleId": "",
"alarmRuleName": "",
"alarmRuleStatusCode": "",
"resourceTypes": [
""
]
},
"alarmStatusCode": "",
"appKey": "",
"cabAlarmKey": "",
"delDatetime": "yyyy-MM-ddTHH:mm:SS",
"description": "",
"modDatetime": "yyyy-MM-ddTHH:mm:SS",
"operatorUuid": "",
"regDatetime": "yyyy-MM-ddTHH:mm:SS"
}
],
"totalItems": 0
}
[기본 정보]
Method | URI |
---|---|
PUT | /resource-watcher/v1.0/appkeys/{appKey}/event-alarms/{alarmId} |
권한 |
---|
ResourceWatcher:Alarms.Update |
등록된 알림을 수정합니다. - 요청한 내용을 모두 변경하므로 변경사항이 없는 내용도 기존 설정 값을 전송해야 합니다.
[Request Header]
Key | Value |
---|---|
X-TC-AUTHENTICATION-ID | 콘솔에서 발급받은 User Access Key |
X-TC-AUTHENTICATION-SECRET | 콘솔에서 발급받은 Secret Access Key |
[Path Variable]
Key | Value |
---|---|
appKey | 콘솔에서 발급받은 Appkey |
alarmId | 수정할 알림의 ID |
[Request Body]
[기본 정보]
Method | URI |
---|---|
DELETE | /resource-watcher/v2.0/appkeys/{appKey}/event-alarms/{alarmId} |
권한 |
---|
ResourceWatcher:Alarms.Delete |
등록된 알림을 삭제합니다.
[Request Header]
Key | Value |
---|---|
X-TC-AUTHENTICATION-ID | 콘솔에서 발급받은 User Access Key |
X-TC-AUTHENTICATION-SECRET | 콘솔에서 발급받은 Secret Access Key |
[Path Variable]
Key | Value |
---|---|
appKey | 콘솔에서 발급받은 Appkey |
alarmId | 삭제할 알림의 ID |
[Response Body]
[기본 정보]
Method | URI |
---|---|
DELETE | /resource-watcher/v2.0/appkeys/{appKey}/event-alarms |
권한 |
---|
ResourceWatcher:Alarms.Delete |
등록된 알림을 여러 개 삭제합니다.
[Request Header]
Key | Value |
---|---|
X-TC-AUTHENTICATION-ID | 콘솔에서 발급받은 User Access Key |
X-TC-AUTHENTICATION-SECRET | 콘솔에서 발급받은 Secret Access Key |
[Path Variable]
Key | Value |
---|---|
appKey | 콘솔에서 발급받은 Appkey |
[Query Parameter]
Key | Value | Required |
---|---|---|
alarmIds | 삭제할 알림 ID의 목록 반드시 1개 이상의 값을 입력해야 합니다. |
Yes |
[Response Body]