Resource Watcher에 RESTful API를 호출하여 이벤트 및 리소스들의 상태 변경에 따른 알림을 받도록 설정할 수 있습니다.
ResourceWatcher API를 사용하려면 User Access Key가 필요합니다. User Access Key는 NHN Cloud 계정 또는 IAM 계정을 기반으로 발급되는 인증 키로, Secret Access Key와 함께 사용하여 API 요청에 대한 인증 수단으로 활용됩니다.
User Access Key와 Secret Access Key는 콘솔의 API 보안 설정에서 발급할 수 있습니다. User Access Key 발급 및 사용에 대한 자세한 내용은 User Access Key를 참고하세요.
ResourceWatcher API를 사용하려면 Appkey가 필요합니다. Appkey는 API 호출 시 요청 URL에 포함하여 특정 리소스를 가리키고 식별하는 데 사용됩니다.
Appkey 확인 및 사용에 대한 자세한 내용은 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]